Probleem:
De auth_socket
module moet handmatig worden geïnstalleerd en ingeschakeld op de root
gebruiker als u de 5.7-wijzigingen overschrijft door uw oude MySQL 5.5
. te importeren database en gebruikerstabel.
Oplossing:
Voor gebruikers willen we nog steeds mysql_native_password
. gebruiken , de standaard. Voor root
, we willen auth_socket
. gebruiken .
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;
Als je het in de verkeerde volgorde doet (voeg root
toe 's auth_socket
kolom voordat u de plug-in installeert), dan kunt u mysql niet laden omdat de plug-in geen authenticatie uitvoert. Gebruik dit om mysql in de veilige modus te starten en uit te voeren:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Deze reparaties zijn uitgevoerd bij het importeren van een volledige database en gebruikerstabel uit MySQL 5.5
naar MySQL 5.7
, migreren van Ubuntu 14.04
naar Ubuntu 16.04
.
Hulpprogramma's:
Zie Plug-ins:show plugins \g
Toon auth_socket op rootgebruiker:select auth_socket from mysql.user where user='root';