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