ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded
Recentemente, fui fazer uma pequena alteração no meu banco de dados, para mudar as permissões de um determinado usuário e acabei perdendo o acesso ao banco.
Depois de executar o comando, mencionado acima, comecei a receber uma mensagem informando a tabela de usuário estaria corrompida e daí pra frente eu não conseguia fazer mais nenhuma alteração no meu banco de dados e quando tentava entra no mysql, recebia a seguinte mensagem de erro: "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Pesquisando sobre unix_socket na internet descobrimos que ele é um plug-in de autenticação que permite usar as credenciais do sistema operacional para se conectar ao MySQL/MariaDB. Ele faz isso por meio do arquivo de soquete local que é definido pela variável do sistema de soquete.
Host: Sistema: Ubuntu 18.04.2 LTS - 64 bits
CPU: Intel® Core™ i5-4460 CPU @ 3.20GHz × 4
Análise do problema:
O problema aconteceu depois da repetição de um simples comando: GRANT SELECT, INSERT, UPDATE ON dbsystemmyimei.* TO usermyimeico;Depois de executar o comando, mencionado acima, comecei a receber uma mensagem informando a tabela de usuário estaria corrompida e daí pra frente eu não conseguia fazer mais nenhuma alteração no meu banco de dados e quando tentava entra no mysql, recebia a seguinte mensagem de erro: "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Pesquisando sobre unix_socket na internet descobrimos que ele é um plug-in de autenticação que permite usar as credenciais do sistema operacional para se conectar ao MySQL/MariaDB. Ele faz isso por meio do arquivo de soquete local que é definido pela variável do sistema de soquete.
Mais detalhes em mariadb.
CPU: Intel® Core™ i5-4460 CPU @ 3.20GHz × 4
Memória: 8GB
2. Navegue para a pasta /var/run
3. Agora faça o backup :
4. Pare o serviço mysql
5. Agora vamos restaurar o backup
6. Inicie o mysql no modo seguro
7 . Em seguida, efetue login no mysql como root:
8. Confira se o plugin de autenticação está configurado para o usuário root:
Você pode ver que ele está usando o plug-in unix_socket
9. Para mudar para o plug-in mysql_native_password, execute o seguinte comando:
10. Agora é só sair do mysql modo segurança:
11. Pare o modo segurança
12. Inicie o mysql ou mariadb, novamente
13. Agora é só fazer o login com sua senha normal:
Problema resolvido!
Solução
Antes de resolvermos esse problema, será preciso fazer o backup da pasta mysql porque, por algum motivo, ainda desconhecido, o mysql.sock é deletado toda vez que o serviço mysql é parado e o mysqld_safe não pode criá-lo novamente. Por isso, para contornarmos esse problema, é preciso fazermos o backup da pasta sock e restaurar antes de iniciar o mysqld_safe.
Passo a passo:
Essa solução pode ser aplicada no mysql ou mariadb1. Se o mysql ou mariadb estiver parado, inicia com o seguinte comando:
sudo service mysql start
2. Navegue para a pasta /var/run
cd /var/run
3. Agora faça o backup :
sudo cp -rp ./mysqld ./mysqld.bak
4. Pare o serviço mysql
sudo service mysql stop
5. Agora vamos restaurar o backup
sudo mv ./mysqld.bak ./mysqld
6. Inicie o mysql no modo seguro
sudo mysqld_safe --skip-grant-tables --skip-networking &
7 . Em seguida, efetue login no mysql como root:
mysql -u root
8. Confira se o plugin de autenticação está configurado para o usuário root:
select Host,User,plugin from mysql.user where User='root';
Você pode ver que ele está usando o plug-in unix_socket
9. Para mudar para o plug-in mysql_native_password, execute o seguinte comando:
update mysql.user set plugin='mysql_native_password';
10. Agora é só sair do mysql modo segurança:
quit;
11. Pare o modo segurança
sudo kill -9 $(pgrep mysql)
12. Inicie o mysql ou mariadb, novamente
sudo systemctl start mysql
13. Agora é só fazer o login com sua senha normal:
mysql -u root -p
Problema resolvido!
Comentários
Postar um comentário
ATENÇÃO: Seu comentário é muito importante para nós e esperamos que você compartilhe suas opiniões e sugestões abaixo. No entanto, lembramos que é de inteira responsabilidade dos usuários seguir as dicas postadas no Blog DicasQueFunfa. Pedimos que evite comentários ofensivos, ilegais ou prejudiciais, pois esses não serão tolerados e serão removidos. Agradecemos sua colaboração e esperamos que suas contribuições enriqueçam ainda mais nosso conteúdo.