[前][次][番号順一覧][スレッド一覧]

mysql:14586

From: Mikiya Okuno <Mikiya Okuno <okuno@xxxxxxxxxx>>
Date: Wed, 28 May 2008 12:04:27 +0900
Subject: [mysql 14586] Re: Can't connect to local MySQL server through socket (146)のエラーについて

こんにちは。

On 2008/05/28, at 11:37, junya_arai wrote:
>
>> mysqld が使用するファイルディスクリプタ数は十分でしょうか?
>> ソケットを開く場合、mysqld もファイルディスクリプタをひとつ
>> 消費します。ファイルディスクリプタ数が足りないと接続を
>> 確立することが出来ません。
> show variablesでopen-files-limitを調べた所、ファイル記述子の数は500でした。
> また、OSのソフトリミットについて調べた所256に設定されており、十分な数だと思っています。

処理によっては500では足りない場合があります。ファイルディスクリプタは接続の他に
データファイルの読み書きにも必要だからです。

SHOW GLOBAL STATUSでOpen_filesはいくつになってますか?

>
>
>> myslqd のエラーログには何も出力されてないでしょうか?
>> mysqld が意図的にコネクションをクローズした場合は
>> 何らかのエラーログが記録されているかも知れません。
> mysqldのエラーログを調べましたが、接続拒否された時間帯にログは記録されていませんでした。

ではmysqldに接続要求が到達していなかった可能性が高いと思います。
この可能性にはファイルディスクリプタが足りない場合も含まれます。

>> 上記以外の場合は DTrace で追跡するしかないですね。
>> とりあえず DTrace Toolkit の opensnooop でも使ってみましょう。
> アドバイスありがとうございます。
> 当方DTraceの使用が初めてのため、現在DTraceについて調べている状況です。
> DTraceで追跡をして、結果が出ましたら報告いたします。

Solarisにはprocツールというコマンド群があり、DTraceを使わなくても
開いてるファイルなどを見ることが出来ますね。例えば接続に失敗したときに

shell> pfiles <pid of mysqld>

とすると、ファイルディスクリプタが足りているのかどうかが分かります。

--
Mikiya Okuno
Support Engineer, MySQL KK

[前][次][番号順一覧][スレッド一覧]

     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@]