Не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock' (2) - PullRequest
237 голосов
/ 15 декабря 2010

Я получаю следующую ошибку при попытке подключиться к mysql:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Есть ли решение для этой ошибки? Что может быть причиной этого?

Ответы [ 32 ]

1 голос
/ 03 октября 2013

Моя проблема заключалась в том, что я успешно установил mysql, и он работал нормально.

Но однажды произошла та же ошибка.

Не удается подключиться к локальному серверу MySQL через сокет'/var/lib/mysql/mysql.sock' (2)

И файл mysql.sock не существует.

Это решение решило мою проблему, и mysql был запущени работает снова:

Войдите в систему как пользователь root:

sudo su -

Выполните:

systemctl stop mysqld.service
systemctl start mysqld.service
systemctl enable mysqld.service

Проверьте как пользователь root:

mysql -u root -p

mysql должен быть запущен.

Надеюсь, это может помочь и кому-то еще.

1 голос
/ 28 июля 2014

Один из способов воспроизвести эту ошибку: если вы хотели подключиться к стороннему серверу, но вместо этого подключиться к несуществующему локальному:

eric@dev ~ $ mysql -u dev -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through 
socket '/var/lib/mysql/mysql.sock' (2)
eric@dev ~ $

Таким образом, вы должны указать хост следующим образом:

eric@dev ~ $ mysql --host=yourdb.yourserver.com -u dev -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.6.19 MySQL Community Server (GPL)

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

mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+
| information_schema      |
| mysql                   |
| performance_schema      |
+-------------------------+
3 rows in set (0.00 sec)

mysql> exit
Bye
eric@dev ~ $
1 голос
/ 15 октября 2013

Обратите внимание, что хотя mysql считывает информацию о местонахождении файла сокета из файла my.cnf, программа mysql_secure_installation, похоже, иногда делает это неправильно.

Так что, если вы похожи на меня и перемешиваете вещи во время установки, вы можете оказаться в ситуации, когда вы можете просто подключиться к базе данных с помощью mysql, но это невозможно защитить (не используя этот скрипт в любом случае). *

Чтобы исправить это, совет от sreddy работает хорошо: создайте мягкую ссылку, откуда скрипт будет ожидать сокета, где он на самом деле находится. Пример:

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

(я использую / tmp / в качестве расположения по умолчанию для сокетов)

1 голос
/ 13 февраля 2014

у меня сработало со следующими изменениями

Какой бы путь для сокета упоминался в [mysqld] и тот же в [client] в my.cnf и перезапустите mysql

[туздЫ] сокет = / var / lib / mysql / mysql.sock

[клиент] сокет = / вар / Библиотека / MySQL / mysql.sock

0 голосов
/ 13 февраля 2014

Это проблема, если вам не хватает места на диске.Решение состоит в том, чтобы освободить место на жестком диске.

Пожалуйста, прочитайте больше, чтобы получить объяснение:

Если вы используете MySQL в LINUX, проверьте свободное место на жестком диске с помощью команды disk free:

 df 

если вы получаете что-то подобное:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2              5162828   4902260         0 100% /
udev                    156676        84    156592   1% /dev
/dev/sda3              3107124     70844   2878444   3% /home

Тогда это проблема, и теперь у вас есть решение!

Поскольку mysql.sock хочет бытьсозданный в папке mysql, которая почти всегда находится в корневой папке, не может этого достичь из-за недостатка места.

Если вы периодически используете команду ls в каталоге mysql (в openSUSE 11.1 он находится в / var / lib/ mysql) вы получите что-то вроде:

hostname:/var/lib/mysql #
.protected  IT     files        ibdata1             mysqld.log  systemtemp
.tmp        NEWS   greekDB      mysql               mysqld.pid  test
ARXEIO      TEMP1  ib_logfile0  mysql.sock          polis
DATING      deisi  ib_logfile1  mysql_upgrade_info  restore

Файл mysql.sock, появляющийся и исчезающий часто (вы должны попробовать выделить ls, чтобы поразить экземпляр с файлом mysql.sock в папке).

Это вызвано нехваткой места на диске.

Я надеюсь, что помогу некоторым людям !!!!Спасибо!

0 голосов
/ 07 апреля 2016

, поэтому он говорит вам, что они не могут найти файл сокета по адресу '/var/lib/mysql/mysql.sock'

, и вам нужно подключить к нему файл mysql.sock.наиболее вероятно, что это в /tmp/mysql.sock, если файл не существует, создайте его, используя

touch /tmp/mysql.sock

, а затем выполните

sudo ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

, если нет mysqlкаталог внутри /var/lib создать его

mkdir mysql

обновить приложение

0 голосов
/ 03 января 2016

Если вы находитесь в оболочке sf.net , попробуйте:

mysql --host=mysql-{LETTER} --user={LETTER}{GROUP ID}admin -p

Измените {LETTER} и {GROUP ID}, как показано в вашей базе данных MySQL профиля администратора проекта.

0 голосов
/ 26 августа 2013

Просто дождь в ту же проблему - и вот как я решил ее.

Если предположить, что mysqld запущен, то проблема может заключаться в том, что клиент mysql не знает, где искать файл сокета.

Самый простой способ решения этой проблемы состоит в добавлении следующей строки в файл профиля вашего пользователя .my.cnf (в linux, который обычно находится в / home / myusername):

socket=<path to the mysql socket file>

Если у вас нет файла .my.cnf, создайте его, содержащий следующее:

[mysql]
socket=<path to the mysql socket file>

В моем случае, поскольку я переместил папку данных mysql по умолчанию (/ var / lib / mysql) в другое место (/ data / mysql), я добавил в .my.cnf следующее:

[mysql]
socket=/data/mysql/mysql.sock

Надеюсь, это поможет.

0 голосов
/ 13 февраля 2015

Попробуйте первые 2, 3 решения. Ошибка все еще всплывающее окно & Если вы не можете найти /var/lib/mysql/mysql.sock

find /var/ -name mysql.sock

Проверьте доступное пространство в / var /

df

Если каталог заполнен, удалите некоторые ненужные файлы / каталоги

rm /var/cache/*

Возможно, ваша проблема будет отсортирована.

0 голосов
/ 01 июня 2014

Мне пришлось отключить explicit_defaults_for_timestamp из my.cnf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...