Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment changer le mot de passe du compte root MySQL sur CentOS7 ?

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

  1. systemd est maintenant utilisé pour s'occuper de mySQL au lieu de mysqld_safe (c'est pourquoi vous obtenez le -bash: mysqld_safe: command not found erreur - il n'est pas installé)

  2. 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