ソケット '/var/run/mysqld/mysqld.sock'(2)を介してローカルMySQLサーバーに接続できません


9

dovecot + postfix + mysqlを使用してメールサーバーを構成し、サーバー(Ubuntuサーバー)で正常に実行されました。しかし、先週は正しく機能しなくなりました。メールは送信しません。telnet localhost smtpうまく接続しようとしても、接続してmail from:<steve@example.com>Enterキーを押してもハングアップしません。

見直した/var/log/mail.log私はMySQLサーバに接続しようとしたとき、おそらく(99%)の問題がpostfixの上にあることが判明したファイルを。以下のログファイルが表示されている場合は、そのことを確認できます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   

回答:


6

ばかげているように見えますが、問題は解決しました。システム管理者がファイアウォールですべてのホストの3306ポートを何らかの方法でブロックしていることに気づかなかったため、mysqlに接続できませんでした。その制限を取り除いた後、問題なくmysqlに接続できました。あなたの提案と助けをありがとう。


1
制限を解除するには?
グリーン

ソケットではなく、TCPで接続したい。どうやってやるの?ありがとう。
krisanalfa

こんにちは@Green、制限を削除する方法、またはポート3306に制限があるかどうかを確認する方法で得た解決策はありますか?
Sushivam

3

同様の問題がありました。「hosts = localhost」を「hosts = 127.0.0.1」に変更し、bind-addressを同じアドレスに設定すると、修正されました(bind-addressが何らかの理由で0.0.0.0に設定されていました)


bind-addressを0.0.0.0のままにして(galeraで行っていたクラスタリングに必要でした)、「host = 127.0.0.1:3306」を変更してTCPを使用するように切り替えました。他の人がしたようにソケットをPostfix chrootにバインドマウントする代わりに、これを決定しました。
Sean Reifschneider 2015年

3

Mysqlサーバーに接続しようとしましたか?

mysql -u username -p

また、/ etc / mysql / my.cnfのリスンアドレスを127.0.0.1に変更して、MySQLを再起動することもできます。

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

私はあなたが言ったすべてを行い、結果はありませんでした
Bakhtiyor '14

私はmysqlを使用してmysqlに接続できることを意味します-u username -p
Bakhtiyor

"my.cnf"である必要があります
jnunn

2

会社のコンピューターの1つで同じエラーが発生しました。

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

sshを介してX-windowsプログラムを実行しようとしたときにも、このエラーが頻繁に発生していました。

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 MB以上のファイルを削除できました。

sudo apt-get autoremove

これにより、私のルートファイルシステムに必要な呼吸スペースが確保されました。これですべてがうまくいきます。10 GBのルートディレクトリでは、2年間に相当するUbuntuの更新を処理するには不十分だと思います。

誰かが気にかけているなら、システムはそれが出て以来Ubuntu 10.04を実行しています。システムは少なくとも週に1回更新されます。今日の日付は2012年9月6日なので、これはほぼ2年半に相当する更新です。


問題がスペースである場合は、askubuntu.com
questions / 17432 /

スペースの問題を指摘するための+1-これで私の問題は解決しました。
yuval 2013年

1

最終的に私を助けたのは、mysqlに関連するすべてのapt-getパッケージを削除することでした(削除libmysqlclient16ではありません)。

だから、ただやる:

dpkg --get-selections | grep mysql

その後:

sudo apt-get purge <package_name>

共通から始めて、次にクライアントに行き、次にサーバーに行きます。


この答えは役に立たないと思います。問題は、ブロックされた3306ポートであり、破損したMySQLパッケージではありませんでした。
2015年

このコマンドは、libmysqlclientXX
パッケージが

ブロックされたポート3306を見つける方法
Sushivam
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.