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

У меня есть почтовый сервер, настроенный с использованием dovecot+postfix+mysql, и он прекрасно работал на сервере (Ubuntu Server). Но на прошлой неделе он перестал работать правильно. Это не отправляет электронную почту. Когда я пытаюсь telnet localhost smtp Я соединяюсь успешно, но когда я делаю mail from:<steve@example.com> и нажмите Enter, он висит, ничего не происходит.

Рассмотрев /var/log/mail.log Я обнаружил, что, вероятно, (99%) проблема связана с постфиксом, когда он пытается подключиться к серверу MySQL. Если вы видите файл журнала, указанный ниже, вы можете увидеть, что он говорит Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2),

Nov 14 21:54:36 ns1 dovecot: dovecot: Killed with signal 15 (by pid=7731 uid=0 code=kill)
Nov 14 21:54:36 ns1 dovecot: Dovecot v1.2.9 starting up (core dumps disabled)
Nov 14 21:54:36 ns1 dovecot: auth-worker(default): mysql: Connected to localhost (mailserver)
Nov 14 21:54:44 ns1 postfix/postfix-script[7753]: refreshing the Postfix mail system
Nov 14 21:54:44 ns1 postfix/master[1670]: reload -- version 2.7.0, configuration /etc/postfix
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: process /usr/lib/postfix/trivial-rewrite pid 7759 exit status 1
Nov 14 21:54:53 ns1 postfix/cleanup[7397]: warning: problem talking to service rewrite: Connection reset by peer
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
Nov 14 21:54:53 ns1 postfix/smtpd[7071]: warning: problem talking to service rewrite: Success

Я старался netstat -ln | grep mysql и он возвращается

unix 2 [ ACC ] STREAM LISTENING 5817 /var/run/mysqld/mysqld.sock,

Содержание /etc/postfix/mysql-virtual-alias-maps.cf файл здесь:

user = stevejobs
password = apple
hosts = localhost
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

Здесь я попытался изменить hosts = 127.0.0.1 но это говорит warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)

Итак, я заблудился и не знаю, где еще можно изменить, чтобы решить проблему. Любая помощь будет высоко оценена.

Спасибо.

РЕДАКТИРОВАТЬ 1

Когда я делаю netstat -na, я вижу, что mysql не привязан ни к localhost, ни к 127.0.0.1. Может ли это быть проблемой?

bakhtiyor@ns1:~$ netstat -na | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN   

5 ответов

Это кажется очень глупым, но я решил проблему. Я не заметил, что системный администратор каким-то образом заблокировал порт 3306 для всех хостов в брандмауэре, и поэтому я не мог подключиться к mysql. После снятия этого ограничения я смог без проблем подключиться к mysql. Спасибо за ваши предложения и помощь.

Вы пытались подключиться к серверу Mysql?

mysql -u username -p

Также вы можете попробовать изменить адрес прослушивания в /etc/mysql/my.cnf на 127.0.0.1 и перезапустить MySQL.

# /etc/mysql/my.cnf
bind-address = 127.0.0.1

У меня была похожая проблема. Изменение "hosts = localhost" на "hosts = 127.0.0.1" и установка bind-адреса на тот же адрес исправили его для меня (почему-то для bind-адреса было установлено значение 0.0.0.0)

Я только что получил эту же ошибку на одном из компьютеров компании.

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

Я также часто получал эту ошибку, когда пытался запускать программы X-windows через ssh:

GConf Error: Failed to contact configuration server; 
some possible causes are that you need to enable TCP/IP networking for ORBit,
or you have stale NFS locks due to a system crash

Оказывается, у меня была корневая файловая система, которая была полностью заполнена, без свободного места на диске, поэтому моя система не могла записать много необходимых файлов. Я получал всевозможные ошибки, связанные со многими различными программами. (Не удалось войти через GDM, обои GDM стали черными, ошибки файла блокировки gconf и т. Д...)

Все, что я сделал, это ввел эту простую команду, чтобы избавиться от файлов в корневом разделе более 400 МБ, которые больше не нужны.

sudo apt-get autoremove

Это дало моей корневой файловой системе необходимое пространство для дыхания. Теперь все работает отлично. Думаю, корневого каталога в 10 ГБ недостаточно для обработки обновлений Ubuntu за два года.

Если кому-то все равно, система работает под управлением Ubuntu 10.04 с момента ее выхода. Система обновляется не реже одного раза в неделю. Сегодняшняя дата - 9-6-2012, так что это почти 2 с половиной года обновлений.

Наконец мне помогло очистить (не удалить!) Все пакеты apt-get, связанные с mysql, кроме libmysqlclient16 который был в состоянии деинсталляции (не уверен, что это такое).

Итак, просто сделайте:

dpkg --get-selections | grep mysql

а потом:

sudo apt-get purge <package_name>

Начните с общего, затем перейдите к клиенту, а затем к серверу.

Другие вопросы по тегам