Problema:
O
auth_socket módulo precisa ser instalado e habilitado manualmente na root user se você escrever sobre as alterações do 5.7 importando seu antigo MySQL 5.5 banco de dados e tabela de usuários. Solução:
Para usuários, queremos ainda usar
mysql_native_password , o padrão. Para root , queremos usar 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;
Se você fizer isso na ordem errada (adicione
root 's auth_socket coluna antes de instalar o plugin), então você não poderá carregar o mysql, pois o plugin não realizará a autenticação. Para iniciar e executar o mysql no modo de segurança, use isto:sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
Essas correções foram realizadas ao importar um banco de dados completo e uma tabela de usuário do
MySQL 5.5 para MySQL 5.7 , migrando do Ubuntu 14.04 para Ubuntu 16.04 . Ferramentas:
Veja Plugins:
show plugins \g Mostrar auth_socket no usuário root:
select auth_socket from mysql.user where user='root';