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

¿Cómo puedo restablecer el comportamiento predeterminado del usuario 'raíz' en MySQL 5.7?

Problema:

El auth_socket el módulo debe instalarse y habilitarse manualmente en la root usuario si escribe sobre los cambios de 5.7 importando su anterior MySQL 5.5 base de datos y tabla de usuarios.

Solución:

Para los usuarios, queremos seguir usando mysql_native_password , el valor por defecto. Para root , queremos usar auth_socket .

install plugin auth_socket soname 'auth_socket.so';
use mysql; update user set plugin='mysql_native_password';
update mysql.user set plugin = 'auth_socket' where User='root';
flush privileges;

Si lo hace en el orden incorrecto (agregue root auth_socket columna antes de instalar el complemento), entonces no podrá cargar mysql ya que el complemento no realizará la autenticación. Para iniciar y ejecutar mysql en modo seguro, use esto:

sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost

Estas correcciones se realizaron al importar una base de datos completa y una tabla de usuario desde MySQL 5.5 a MySQL 5.7 , migrando desde Ubuntu 14.04 a Ubuntu 16.04 .

Herramientas:

Ver Complementos:show plugins \g

Mostrar auth_socket en el usuario root:select auth_socket from mysql.user where user='root';