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