Para os usuários do MySQL em Ubuntu/Debian que estão tendo este erro, saibam que isto ocorre por alguma desincronia de atualização que mudou a senha do usuário no banco e não mudou a mesma num arquivo de configuração utilizado pela distribuição ou o contrário.
Este erro pode ser visualizado no MySQL quando se tenta reinicializar ou encerrar a execução do banco, como em:
/etc/init.d/mysql restart * Stopping MySQL database server mysqld [fail] * Starting MySQL database server mysqld [ OK ] /usr/bin/mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)’
O usuário “debian-sys-maint” é criado pela distribuição Debian/Ubuntu para ser capaz de iniciar ou encerrar a execução do banco de dados MySQL, assim como diversas operações de manutenção do mesmo.
Para corrigir este problema, vá no arquivo /etc/mysql/debian.cnf para obter o password corrente deste usuário. Obviamente este password está errado no banco de dados, por algum erro que desincronizou o mesmo.
O conteúdo deste arquivo é algo parecido com o abaixo demonstrado:
cat /etc/mysql/debian.cnf # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = n4a5HUPO4slJ32X5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] user = debian-sys-maint password = n4a5HUPO4slJ32X5 socket = /var/run/mysqld/mysqld.sock basedir = /usr
Com o password conhecido, devemos agora conectar no MySQL como root e dar ao usuário debian-sys-maint todos os privilégios necessários para efetuar a administração e manutenção.
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@’localhost’ IDENTIFIED BY ‘c3cCTvr3kG5zC3fa’;
Caso tenha problema com este comando, poderá tentar acessar o banco de dados mysql (use mysql;) e alterar o password deste usuário para o definido no arquivo. Isto deverá resolver o problema também.
Ao reinicializar o MySQL, verá que o problema foi solucionado e a menssagem de erro “access denied” não aparecerá mais. Com isto, foi corrigido o problema de permissão negada conforme poderá confirmar com os comandos abaixo:
/etc/init.d/mysql restart * Stopping MySQL database server mysqld [ OK ] * Starting MySQL database server mysqld [ OK ] * Checking for corrupt, not cleanly closed and upgrade needing tables.