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