GNU/Linux >> Tutoriales Linux >  >> Linux

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

MySQL 5.7 cambió el modelo seguro:ahora el inicio de sesión raíz de MySQL requiere un sudo

La solución más simple (y segura) será crear un nuevo usuario y otorgarle los privilegios requeridos.

1. Conéctate a mysql

sudo mysql --user=root mysql

2. Crear un usuario para phpMyAdmin

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Referencia:https://askubuntu.com/questions/763336/cannot-enter-phpmyadmin-as-root-mysql-5-7


El servidor MySQL 5.7 ya estaba instalado de forma predeterminada en mi nuevo Linux Mint 19.

Pero, ¿qué es MySQL root? ¿clave? Resulta que:

La instalación predeterminada usa auth_socket para autenticación, en lugar de contraseñas!

Permite un inicio de sesión sin contraseña, siempre que se haya iniciado sesión en el sistema Linux con el mismo nombre de usuario. Para iniciar sesión como raíz de MySQL user , uno puede usar sudo:

sudo mysql --user=root

Pero, ¿cómo cambiar la contraseña de root? Para ilustrar lo que está pasando, creé un nuevo usuario "yo", con todos los privilegios, con:

mysql> CREATE USER 'me'@'localhost' IDENTIFIED BY 'my_new_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'me'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Comparando "yo" con "raíz":

mysql> SELECT user, plugin, HEX(authentication_string)  FROM mysql.user WHERE user = 'me' or user = 'root';
+------+-----------------------+----------------------------------------------------------------------------+
| user | plugin                | HEX(authentication_string)                                                 |
+------+-----------------------+----------------------------------------------------------------------------+
| root | auth_socket           |                                                                            |
| me   | mysql_native_password | 2A393846353030304545453239394634323734333139354241344642413245373537313... |
+------+-----------------------+----------------------------------------------------------------------------+

Debido a que está usando auth_socket, la contraseña de root no se puede cambiar:el SET PASSWORD el comando falla y mysql_secure_installation no ha logrado nada...

==> Para eliminar este modo de autenticación alternativo y devolver MySQL root usuario para usar contraseñas:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SOME_NEW_ROOT_PASSWORD';

Una buena explicación.

Más detalles del manual de MySQL.


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 esta respuesta por sacarme de la frustración en este...

$ 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!

Después de instalar MySQL-community-server 5.7 desde cero en Linux, deberá encontrar la contraseña temporal de /var/log/mysqld.log para iniciar sesión como root.

  1. grep 'temporary password' /var/log/mysqld.log
  2. Ejecutar mysql_secure_installation para cambiar la nueva contraseña

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


Linux
  1. Los 5 mejores reemplazos gratuitos para el servidor MySQL

  2. ¿Cómo restablecer la contraseña de root de MySQL?

  3. ¿Cuál es el propósito del usuario “mysql.sys@localhost”?

  4. ¿Cuál es el propósito de "usuario del sistema" en MySQL Replication

  5. ¿Cuál es el propósito del grupo "rueda" en Linux?

Cómo cambiar la contraseña de root mysql

¿Cuál es la identificación de partición/tipo de sistema de archivos para UDF?

¿Cuál es el orden predeterminado de clasificación de Linux?

¿Cuál es el nombre de usuario y la contraseña predeterminados para un Ubuntu Live CD?

¿Cuál es el shell predeterminado de Busybox?

¿Cuál es la instalación de syslog para registros auditados?