mysql:14575
From: Mikiya Okuno <Mikiya Okuno <okuno@xxxxxxxxxx>>
Date: Fri, 23 May 2008 19:49:30 +0900
Subject: [mysql 14575] Re: Can't connect to local MySQL server through socket (146)のエラーについて
こんばんは。奥野です。 荒井さん、以下のことについて調べてみて下さい。 mysqld が使用するファイルディスクリプタ数は十分でしょうか? ソケットを開く場合、mysqld もファイルディスクリプタをひとつ 消費します。ファイルディスクリプタ数が足りないと接続を 確立することが出来ません。 myslqd のエラーログには何も出力されてないでしょうか? mysqld が意図的にコネクションをクローズした場合は 何らかのエラーログが記録されているかも知れません。 上記以外の場合は DTrace で追跡するしかないですね。 とりあえず DTrace Toolkit の opensnooop でも使ってみましょう。 -- Mikiya Okuno Support Engineer, MySQL KK On 2008/05/23, at 19:11, junya_arai wrote: > お世話になっております。荒井です。 > ご指摘の通り、エラー番号146は、connectシステムコールが > 接続の拒否によって失敗した場合に発生すると認識しております。 > >> 146 ECONNREFUSED >> * 接続が拒否されました。 >> * 相手側マシンにより拒否されたので、接続を確立できませんでした。 >> 通常この状態は、リモートホスト上でアクティブになっていないサービスに接続しようとした場合に発生します。 > > 146 ECONNREFUSEDが発生した時間に、別の常駐プロセスは接続できているため、mysqlは正常に動作していると > 考えられます。 > > また、ソケット接続のlistenの待ちキューのback_logが溢れた場合に > 146 ECONNREFUSEDが発生すると思いますが、 > mysqlのback_logの設定値を調べた結果、50に設定されており、 > サーバ側でlistenしているキューの数が足りずに接続拒否になったとは、考えづらく思います。 > > 以上調査した2ケースからは、接続拒否となった原因にたどり着けない状況です。 > そのため、他にエラー番号146が発生するケースについて、手がかりを探しています。 > > ご存知の方、手がかりをお持ちの方がおりましたら、ご教授頂きたく思います。 > よろしくお願いします。 > >> 池田です。 >> >> 追記です。 >> >> すみません、タイトルにエラーメッセージ書いてありましたね。 >> 手元にSolarisマシンがないので146番が以下であると気づくのが遅れました。 >> >> 146 ECONNREFUSED >> * 接続が拒否されました。 >> * 相手側マシンにより拒否されたので、接続を確立できませんでした。 >> 通常この状態は、リモートホスト上でアクティブになっていないサービスに接続しようとした場合に発生します。 >> >> 2008/05/21 18:48 Tetsuro IKEDA <ikdttr@xxxxxxxxxx>: >>> 池田です。 >>> >>> エラー番号146とのことですが、番号だけでなくメッセージも教えてください。 >>> 例えばこんな感じ↓↓で出力されたメッセージそのものをコピペしてもらえれば。 エラーメッセージは割とソース解析の手がかりになります。 >>> >>> ERROR 2002 (HY000): Can't connect to local MySQL server through socket >>> '/tmp/mysql.sock' (2) >>> >>> 以下のようにconnectシステムコールが失敗しているとのことですが、根拠は何ですか? >>> (単なる推測でしょうか?あるいは他に何か情報をお持ちですか?) >>> >>>> 疑問点: >>>> おそらく、mysql_real_connectライブラリーの中でのconnectシステムコールが >>>> 失敗していると思いますが、なぜ146になるのかわかりません。 >>> >>> mysqldがlistenするUnixソケット用キューの数はback_logで指定した値 >>> (デフォルト値=50)だと思います。 >>> >>> sql/mysqld.cc: if (listen(unix_sock,(int) back_log) < 0) >>> >>>> 1、mysqldでlistenしているUnix ソケット用キューの数は幾つでしょうか? >>>> mysqlのソース調査して見たのですが、よく分かりません。 >>> >>> 勘違いだったらすみません。 >>> >>> -- >>> Tritonn http://qwik.jp/tritonn/ >>> hatena http://d.hatena.ne.jp/mir/ >>> >> >> >> >> -- >> Tritonn http://qwik.jp/tritonn/ >> hatena http://d.hatena.ne.jp/mir/ > >
14566 2008-05-21 20:37 ["junya_arai" <j.arai] Can't connect to local MySQL server through socket (146)のエラーについて 14567 2008-05-22 10:48 ┗["Tetsuro IKEDA" <ikd] 14568 2008-05-22 11:09 ┗["Tetsuro IKEDA" <ikd] 14574 2008-05-23 19:11 ┗["junya_arai" <j.arai] -> 14575 2008-05-23 19:49 ┗[Mikiya Okuno <okuno@] 14585 2008-05-28 11:37 ┗["junya_arai" <j.arai] 14586 2008-05-28 12:04 ┗[Mikiya Okuno <okuno@]