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