Problem:
auth_socket modul skal installeres og aktiveres manuelt på root bruger, hvis du skriver over 5.7-ændringerne ved at importere din gamle MySQL 5.5 database og brugertabel.
Løsning:
For brugere ønsker vi stadig at bruge mysql_native_password , standarden. Til root , vi ønsker at bruge 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;
Hvis du gør det i den forkerte rækkefølge (tilføj root 's auth_socket kolonne, før du installerer pluginnet), så vil du ikke være i stand til at indlæse mysql, da pluginnet ikke udfører godkendelse. For at starte og køre mysql i fejlsikret tilstand, brug denne:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Disse rettelser blev udført ved import af en komplet database og brugertabel fra MySQL 5.5 til MySQL 5.7 , migrerer fra Ubuntu 14.04 til Ubuntu 16.04 .
Værktøjer:
Se plugins:show plugins \g
Vis auth_socket på root-bruger:select auth_socket from mysql.user where user='root';