J’ai eu des problèmes avec mysql. J’ai essayé d’exécuter ceci:
echo "show databases" | mysql -B -N
Mais j’ai:
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
Mais quand j’exécute:
/etc/init.d/mysql restart
J’ai un ‘OK’.
J’ai fait
GRANT ALL PRIVILEGES on *.* TO debian-sys-maint@localhost IDENTIFIED BY PASSWORD 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES;
où mot de passe est de /etc/mysql/debian.cnf
. Mais ça n’a pas aidé. (bien sûr, j’ai rincé priv et redémarré mysql).
Le problème est que votre instruction GRANT
utilise la clause IDENTIFIED BY PASSWORD
et, dans ce cas, mysql s’attend à obtenir un mot de passe haché , pas un mot de passe en clair.
Utilisez plutôt IDENTIFIED BY 'your password'
si vous souhaitez fournir un mot de passe en clair.
C’est parce que Debian a un compte MySQL debian-sys-maint
utilisé pour activer / désactiver et vérifier le statut. Le mot de passe de cet utilisateur doit être identique à celui stocké dans /etc/mysql/debian.cnf
. Le fichier ressemble à ceci:
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = socket = /var/run/mysqld/mysqld.sock basedir = /usr
Si le mot de passe ne correspond pas (par exemple parce que vous l’avez modifié manuellement), le script d’initialisation ne fonctionnera plus. Vous devez définir le mot de passe en fonction du fichier. Alors
mysql -u root -p # Then type MySQL root password GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '';
Le moyen le plus simple de restaurer l’utilisateur debian-sys-maint est de reconfigurer le paquet mysql-server-5.5. Si vous connaissez le mot de passe de l’utilisateur root de MySQL, vous pouvez essayer de restaurer l’utilisateur et son mot de passe dans /etc/mysql/debian.cnf.
sudo dpkg-reconfigure mysql-server-5.5
NOTE: si vous ne pouvez pas arrêter mysql pid, lancez simplement sudo killall mysqld
. Ceci est nécessaire pour reconfigurer le mysql-server-5.5.