Problem:
auth_socket
modulen måste installeras och aktiveras manuellt på root
användare om du skriver över 5.7-ändringarna genom att importera din gamla MySQL 5.5
databas och användartabell.
Lösning:
För användare vill vi fortfarande använda mysql_native_password
, standarden. För root
, vi vill använda 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;
Om du gör det i fel ordning (lägg till root
s auth_socket
kolumnen innan du installerar insticksprogrammet), kommer du inte att kunna ladda mysql eftersom insticksprogrammet inte kommer att utföra autentisering. För att starta och köra mysql i felsäkert läge använd detta:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Dessa korrigeringar utfördes vid import av en fullständig databas och användartabell från MySQL 5.5
till MySQL 5.7
, migrerar från Ubuntu 14.04
till Ubuntu 16.04
.
Verktyg:
Se Plugins:show plugins \g
Visa auth_socket på root-användare:select auth_socket from mysql.user where user='root';