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

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

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

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Как я могу это исправить?

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

В моем случае это, похоже, связано с ошибкой в ​​сценариях обновления Debian (поэтому проблема может возникнуть и в Ubuntu). Каким-то образом после завершения процесса обновления некоторые из двоичных файлов журнала оказываются неверными. Это не позволяет серверу получить доступ для записи в свои собственные журналы, поэтому он не запускается.

В Debian (по крайней мере, на наших серверах) все эти файлы находятся в /var/lib/mysql. Все в нем должно принадлежать пользователю mysql и группе mysql. Однако некоторые файлы mysql-bin.* после обновления принадлежали пользователю root. Смена владельца файлов журнала обратно на mysql позволила серверу правильно запуститься:

# chown mysql:mysql /var/lib/mysql/mysql-bin.*
# /etc/init.d/mysql start

Надеюсь, это кому-то сэкономит время.

Попробуйте следующее

mkdir /var/run/mysql
chown mysql:mysql /var/run/mysql

Затем запустите mysql ...

MySQL, скорее всего, не запустился. Попробуйте бежать ps aux | grep mysqld чтобы узнать, есть ли идентификатор процесса для демона mysql.

Чтобы развернуть комментарий Шейна, проверьте журнал MySQL, чтобы узнать, почему он не запускается. Местоположение по умолчанию: /var/log/mysql/error.log

Сначала запустите сервер mysql

затем запустите эту команду

ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock