Problem:
auth_socket moduł wymaga ręcznej instalacji i włączenia w root użytkownika, jeśli nadpiszesz zmiany w wersji 5.7, importując swój stary MySQL 5.5 baza danych i tabela użytkowników.
Rozwiązanie:
Dla użytkowników nadal chcemy używać mysql_native_password , domyślny. Dla root , chcemy użyć 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;
Jeśli zrobisz to w złej kolejności (dodaj root auth_socket kolumna przed zainstalowaniem wtyczki), wtedy nie będziesz mógł załadować mysql, ponieważ wtyczka nie wykona uwierzytelnienia. Aby uruchomić i uruchomić mysql w trybie awaryjnym, użyj tego:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Te poprawki zostały wprowadzone podczas importowania pełnej bazy danych i tabeli użytkowników z MySQL 5.5 do MySQL 5.7 , migracja z Ubuntu 14.04 do Ubuntu 16.04 .
Narzędzia:
Zobacz Wtyczki:show plugins \g
Pokaż auth_socket dla użytkownika root:select auth_socket from mysql.user where user='root';