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