Quelle version de mySQL utilisez-vous ? J'utilise 5.7.10 et j'ai eu le même problème avec la connexion en tant que root
Il y a 2 problèmes - pourquoi ne puis-je pas me connecter en tant que root pour commencer, et pourquoi ne puis-je pas utiliser 'mysqld_safe` pour démarrer mySQL afin de réinitialiser le mot de passe root.
Je n'ai pas de réponse à la configuration du mot de passe root lors de l'installation, mais voici ce que vous faites pour réinitialiser le mot de passe root
Modifier le mot de passe root initial lors de l'installation peut être trouvé en exécutant
grep 'temporary password' /var/log/mysqld.log
http://dev.mysql.com /doc/refman/5.7/en/linux-installation-yum-repo.html
-
systemd
est maintenant utilisé pour s'occuper de mySQL au lieu demysqld_safe
(c'est pourquoi vous obtenez le-bash: mysqld_safe: command not found
erreur - il n'est pas installé) -
L'
user
la structure du tableau a changé.
Donc, pour réinitialiser le mot de passe root, vous démarrez toujours mySQL avec --skip-grant-tables
options et mettre à jour le user
table, mais la façon dont vous le faites a changé.
1. Stop mysql:
systemctl stop mysqld
2. Set the mySQL environment option
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
-> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning
6. Stop mysql
systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
Référence
Comme il est dit sur http://dev.mysql.com /doc/refman/5.7/en/mysqld-safe.html ,
Ce qui vous amène à http://dev .mysql.com/doc/refman/5.7/en/server-management-using-systemd.html
où il mentionne le systemctl set-environment MYSQLD_OPTS=
vers le bas de la page.
Les commandes de réinitialisation du mot de passe se trouvent au bas de http:// dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html