sql >> Databáze >  >> RDS >> Mysql

Jak mohu obnovit výchozí chování uživatele „root“ na MySQL 5.7

Problém:

auth_socket modul je třeba ručně nainstalovat a povolit v root uživatel, pokud přepíšete změny 5.7 importem vašeho starého MySQL 5.5 databáze a uživatelská tabulka.

Řešení:

Pro uživatele chceme stále používat mysql_native_password , výchozí. Pro root , chceme použít 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;

Pokud to uděláte ve špatném pořadí (přidejte root auth_socket před instalací pluginu), pak nebudete moci načíst mysql, protože plugin neprovede ověření. Chcete-li spustit a spustit mysql v nouzovém režimu, použijte toto:

sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost

Tyto opravy byly provedeny při importu úplné databáze a uživatelské tabulky z MySQL 5.5 na MySQL 5.7 , migrující z Ubuntu 14.04 na Ubuntu 16.04 .

Nástroje:

Viz Pluginy:show plugins \g

Zobrazit auth_socket uživateli root:select auth_socket from mysql.user where user='root';




  1. pokud řádek1 =hodnota 1, aktualizujte další řádky

  2. NÁVRAT NA POUŽITÍ Oracle v Javě (JDBC, Připravené prohlášení)

  3. Jak vytvořit zástupce pro SSMS a automaticky se připojit k výchozímu serveru SQL - SQ:Server / TSQL výukový program, část 4

  4. ORA-38868