Не удается подключиться к локальному серверу 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>
Начните с общего, затем перейдите к клиенту, а затем к серверу.