Назад | Перейти на главную страницу

Не удается подключиться к серверу mysql ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock' (2)

Я пытаюсь подключиться к серверу mysql, но это вызывает у меня проблему с сокетом. Я отредактировал my.cnf из /var/lib/mysql/mysql.sock в /home/mysql/mysql.sock Nb: проблема существует до перемещения файла mysql db в новый каталог.

[root@dc ~]# /usr/bin/mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


[root@dc ~]# ps aux | grep mysqld
root      8472  0.0  0.0 108216  1596 pts/2    S    10:18   0:00 /bin/sh  /usr/bin/mysqld_safe --datadir=/home/mysql --socket=/home/mysql/mysql.sock --pid-       file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
 mysql     8691  0.1  0.0 543468 47860 pts/2    Sl   10:18   0:00   /usr/libexec/mysqld --basedir=/usr --datadir=/home/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/home/mysql/mysql.sock
root      8825  0.0  0.0 103356   852 pts/2    S+   10:20   0:00 grep mysqld

Директива mysqld в my.cnf:

[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock

Вы проверили, что файл /home/mysql/mysql.sock существует и доступен для чтения и т. Д.?

Я видел это в прошлом, когда возникают правильные проблемы, и файл не создается или недоступен.

Кроме того, есть ли какие-либо ошибки в журналах, когда вы выполняете '/etc/init.d/mysqld restart' *?

// Майк * или что угодно в вашей ОС для перезапуска демона / службы

Попробуйте добавить сокет в my.cnf в клиентской директиве.

[mysql]

# CLIENT #
port                            = 3306
socket                          = /home/mysql/mysql.sock

[mysqld_safe]

socket                          = /home/mysql/mysql.sock
nice                            = 0

[mysqld]

# GENERAL #
user                            = mysql
default-storage-engine          = InnoDB
pid-file                        = /var/run/mysqld/mysqld.pid
socket                          = /home/mysql/mysql.sock

ваш вывод ps показывает, что сокет вашего mysqld хранится в:

/home/mysql/mysql.sock

но ваш клиент mysql пытается использовать значение по умолчанию:

/var/lib/mysql/mysql.sock

Итак, вы можете попробовать:

/usr/bin/mysql -u root -p -S /home/mysql/mysql.sock