sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo cambiar la contraseña de la cuenta raíz de MySQL en CentOS7?

¿Qué versión de mySQL estás usando? Estoy usando 5.7.10 y tuve el mismo problema al iniciar sesión como root

Hay 2 problemas:¿por qué no puedo iniciar sesión como root para empezar y por qué no puedo usar 'mysqld_safe` para iniciar mySQL y restablecer la contraseña de root?

No tengo respuesta para configurar la contraseña de root durante la instalación, pero esto es lo que debe hacer para restablecer la contraseña de root

Editar la contraseña raíz inicial en la instalación se puede encontrar ejecutando

grep 'temporary password' /var/log/mysqld.log

http://dev.mysql.com /doc/refman/5.7/en/instalacion-linux-yum-repo.html

  1. systemd ahora se usa para cuidar mySQL en lugar de mysqld_safe (razón por la cual obtiene el -bash: mysqld_safe: command not found error - no está instalado)

  2. El user la estructura de la tabla ha cambiado.

Entonces, para restablecer la contraseña de root, todavía inicia mySQL con --skip-grant-tables opciones y actualice el user tabla, pero la forma de hacerlo ha cambiado.

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

Referencia

Como dice en http://dev.mysql.com /doc/refman/5.7/en/mysqld-safe.html ,

Lo que lo lleva a http://dev .mysql.com/doc/refman/5.7/en/server-management-using-systemd.html donde menciona el systemctl set-environment MYSQLD_OPTS= hacia la parte inferior de la página.

Los comandos de restablecimiento de contraseña se encuentran en la parte inferior de http:// dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html