Проблем:
auth_socket
модулът трябва ръчно да бъде инсталиран и активиран в root
потребител, ако пишете над промените 5.7, като импортирате стария си MySQL 5.5
база данни и потребителска таблица.
Решение:
За потребителите искаме все още да използваме mysql_native_password
, по подразбиране. За root
, искаме да използваме 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;
Ако го направите в грешен ред (добавете root
auth_socket
колона преди да инсталирате приставката), тогава няма да можете да заредите mysql, тъй като приставката няма да извърши удостоверяване. За да стартирате и стартирате mysql в безопасен режим, използвайте това:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Тези корекции бяха извършени при импортиране на пълна база данни и потребителска таблица от MySQL 5.5
към MySQL 5.7
, мигриране от Ubuntu 14.04
до Ubuntu 16.04
.
Инструменти:
Вижте Плъгини:show plugins \g
Показване на auth_socket на root потребител:select auth_socket from mysql.user where user='root';