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

¿Cuál es la contraseña raíz predeterminada para MySQL 5.7?

Hay tantas respuestas que dicen reinstalar mysql o usar alguna combinación de

mysqld_safe --skip-grant-tables

y/o

UPDATE mysql.user SET Password=PASSWORD('password')

y/o algo más...

... Nada de eso funcionó para mí

Esto es lo que funcionó para mí, en Ubuntu 18.04, desde arriba

Con crédito especial para este responder por sacarme de la frustración sobre esto...

$ sudo apt install mysql-server
$ sudo cat /etc/mysql/debian.cnf

Tenga en cuenta las líneas que dicen:

user     = debian-sys-maint
password = blahblahblah

Entonces:

$ mysql -u debian-sys-maint -p
Enter password: // type 'blahblahblah', ie. password from debian.cnf

mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT;  // When you don't have auto-commit switched on

O bien:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

O:

// For MySQL 5.7+
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';

Entonces:

mysql> FLUSH PRIVILEGES;
mysql> COMMIT;  // When you don't have auto-commit switched on
mysql> EXIT

$ sudo service mysql restart
$ mysql -u root -p
Enter password: // Yay! 'new_password' now works!