MySQL: Can’t connect to local MySQL server through socket

Se você buscar por este erro no Google, a maioria das respostas vai dizer que o MySQL está parado, ou a senha está errada, ou problemas parecidos. Mas este não é o caso.

[ricardo@Oracle ~]$ mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)
[ricardo@Oracle ~]$

Olhando no Log do MySQL, vejo que o arquivo de Socket foi criado como /var/run/mysqld/mysqld.sock (com um “d” em mysqld).

[ricardo@Oracle ~]$ sudo tail /var/log/mysqld.log
2019-10-02T16:15:21.545625-03:00 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.17) starting as process 7766
2019-10-02T16:15:26.111325-03:00 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001287 - 'validate password plugin' is deprecated and will be removed in a future release. Please use validate_password component instead
2019-10-02T16:15:27.643178-03:00 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2019-10-02T16:15:28.571079-03:00 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.17'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.
2019-10-02T16:15:28.613212-03:00 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
[ricardo@Oracle ~]$

Olhando no Arquivo de Configurações do MySQL, vejo que ele foi criado neste diretório, porque foi especificado assim. Acho que copiei este Arquivo de Configurações de um servidor Debian, e este deve ser o padrão nesta Distribuição.

[ricardo@Oracle ~]$ cat /etc/my.cnf
...
[mysqld]
socket          = /var/run/mysqld/mysqld.sock
...
[ricardo@Oracle ~]$

A solução é configurar o Client (identificado no Arquivo de Configurações como [mysql]) para utilizar também este arquivo de Socket.

[ricardo@Oracle ~]$ cat /etc/my.cnf
...
[mysql]
socket          = /var/run/mysqld/mysqld.sock
...
[mysqld]
socket          = /var/run/mysqld/mysqld.sock
...
[ricardo@Oracle ~]$

E pronto.

[ricardo@Oracle ~]$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.17 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.