Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je réinitialiser le comportement de l'utilisateur 'root' par défaut sur MySQL 5.7

Problème :

Le auth_socket le module doit être installé et activé manuellement sur la root user si vous écrasez les changements 5.7 en important votre ancien MySQL 5.5 base de données et table utilisateur.

Solution :

Pour les utilisateurs, nous voulons toujours utiliser mysql_native_password , le défaut. Pour root , nous voulons utiliser 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 vous le faites dans le mauvais ordre (ajoutez root auth_socket de colonne avant d'installer le plugin), vous ne pourrez pas charger mysql car le plugin n'effectuera pas d'authentification. Pour démarrer et exécuter mysql en mode sans échec, utilisez ceci :

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

Ces correctifs ont été effectués lors de l'importation d'une base de données complète et d'une table utilisateur depuis MySQL 5.5 vers MySQL 5.7 , migration depuis Ubuntu 14.04 à Ubuntu 16.04 .

Outils :

Voir Plugins :show plugins \g

Afficher auth_socket sur l'utilisateur root :select auth_socket from mysql.user where user='root';