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';