Problema:
Il auth_socket il modulo deve essere installato e abilitato manualmente sulla root utente se scrivi le modifiche 5.7 importando il tuo vecchio MySQL 5.5 database e tabella utente.
Soluzione:
Per gli utenti vogliamo continuare a utilizzare mysql_native_password , il predefinito. Per root , vogliamo usare 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;
Se lo fai nell'ordine sbagliato (aggiungi root è auth_socket colonna prima di installare il plug-in), non sarai in grado di caricare mysql poiché il plug-in non eseguirà l'autenticazione. Per avviare ed eseguire mysql in modalità provvisoria usa questo:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Queste correzioni sono state eseguite durante l'importazione di un database completo e di una tabella utente da MySQL 5.5 a MySQL 5.7 , migrando da Ubuntu 14.04 a Ubuntu 16.04 .
Strumenti:
Vedi Plugin:show plugins \g
Mostra auth_socket sull'utente root:select auth_socket from mysql.user where user='root';