
Estou instalando o mtop no Ubuntu 8.04. O Mysql está em execução.
Durante o processo de instalação aparece uma mensagem:
Access denied for user 'root'@'localhost' (using password: NO)
(Veja abaixo)
Eu suspeito que tenho que permitir o acesso do usuário root do unix ao root da conta mysql de alguma forma?
Quais são as etapas corretas?
$ sudo aptitude install mtop
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Building tag database... Done
The following NEW packages will be automatically installed:
libcurses-perl
The following packages have been kept back:
linux-image-server linux-server pm-utils
The following NEW packages will be installed:
libcurses-perl mtop
0 packages upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 0B/168kB of archives. After unpacking 664kB will be used.
Do you want to continue? [Y/n/?] y
Writing extended state information... Done
Preconfiguring packages ...
Selecting previously deselected package libcurses-perl.
(Reading database ... 36744 files and directories currently installed.)
Unpacking libcurses-perl (from .../libcurses-perl_1.13-1_i386.deb) ...
Selecting previously deselected package mtop.
Unpacking mtop (from .../mtop_0.6.6-1.2_all.deb) ...
Setting up libcurses-perl (1.13-1) ...
Setting up mtop (0.6.6-1.2) ...
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
dpkg: error processing mtop (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
mtop
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install. Trying to recover:
Setting up mtop (0.6.6-1.2) ...
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
dpkg: error processing mtop (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
mtop
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Building tag database... Done
Editar:Depois de ler o relatório de bugs no launchpad, decidi usar uma ferramenta semelhante mytop
nas edições antigas do Ubuntu.
Responder1
Primeiro abra um cliente mysql usando sua conta root:
mysql -u root -p
Em seguida, remova a senha root apenas parahost locale libere os privilégios:
UPDATE mysql.user SET Password=PASSWORD('') WHERE User='root' AND Host='localhost';FLUSH PRIVILEGES;
Agora instale o mtop, por exemplo:
sudo aptitude install mtop
Após a instalação, defina a senha de volta para sua senha antiga:
UPDATE mysql.user SET Password=PASSWORD('oldpassword') WHERE User='root' AND Host='localhost';FLUSH PRIVILEGES;
@JamesLawrie: Eu sugiro fortemente não fornecer sua senha diretamente no comando, usando apenas -p irá solicitar sua senha, o que impede que ela seja registrada em seu histórico de shell, consulte 5.3.2.2. Diretrizes do usuário final para segurança de senha
@JamesLawrie: Especificar apenas o acesso ao host local melhora o aspecto de segurança. No seu exemplo você usa'%'que permitirácontrolo remotoacesso root sem senha!
Embora no final, consertar esse bug provavelmente seja a melhor abordagem:https://bugs.launchpad.net/ubuntu/+source/mtop/+bug/77980
Responder2
Este bug descreve algumas soluções alternativas e até pacotes alternativos (PPA):
Responder3
Uma maneira horrível e hackeada de corrigir isso é remover primeiro a senha root do MySQL para localhost e, em seguida, adicioná-la novamente.
mysql -u root -pwhatever
UPDATE user SET Password=PASSWORD('') WHERE User='root' AND Host='%';
Instale o seu programa
UPDATE user SET Password=PASSWORD('whatever') WHERE User='root' AND Host='%';
Depois de instalado, deverá haver um arquivo de configuração em algum lugar com os detalhes de login.