sql >> Database >  >> RDS >> Mysql

Hoe kan ik het standaard 'root'-gebruikersgedrag op MySQL 5.7 resetten?

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




  1. Hoe wijs ik een hibernate Timestamp toe aan een MySQL BIGINT?

  2. SQL om matrixtabel te maken

  3. Kon 'OK' niet selecteren in mysql-apt-config [Ubuntu 14.04]

  4. Gegevens verwijderen uit mysql en angular