¿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
-
systemd
ahora se usa para cuidar mySQL en lugar demysqld_safe
(razón por la cual obtiene el-bash: mysqld_safe: command not found
error - no está instalado) -
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