sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag återställa standard "root" användarbeteende på MySQL 5.7

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




  1. MySQL lagrad procedur orsakar problem?

  2. Laravel migration primära (eller nyckel) Identifierarens namn är för långt

  3. Access 2021 For Dummies Cheat Sheet

  4. applikationen ansluter till databasen