mysqlの、mysqldumpを、PHPのMySQL接続エラーERROR 2002(HY000)

MySQLは、mysqldumpを、PHPのmysqlの接続サービスは、多くの場合、次のエラーが求められます。


ERROR 2002(HY000):ソケットを介してローカルのMySQLサーバーに接続できません '/var/lib/mysql/mysql.sock'(2)

 


一般的に2があるため、この問題が発生します。

(1)mysqlのサービスが正常に動作していません。

サービスは、mysqldを起動しない場合は、mysqldのサービスを開始すると、MySQLのソケットファイルが作成さに起因し、自然なソケットファイルは作成されません、

もちろん、あなたはソケットファイルを見つけることができません。mysqlのサービスを開始するかどうかを判断するために、私たちは、次のコマンドを使用することができます。

  1)ポートが開いています

[[email protected]〜]#のlsof -i:3306

COMMAND PIDユーザFD型デバイスサイズ/ OFF NODE NAME

mysqldの12207 mysqlの14UのIPv4 52350 0t0 TCP *:mysqlの(LISTEN)

  2)のmysqldサービスが実行されています

[[email protected]〜]#サービスのmysqld状況

(4717 PID)mysqldが実行されています...

 


設定ファイル(2)ソケット・ファイル・パスの設定は不完全です。

私たちが引き起こした設定のmysql「な/etc/my.cnfを」改変ので、これは一般的です。例えば、我々は、パラメータの下で設定ファイル「[mysqlの]」「ソケット」オプションを変更しました

指定されていないファイルが見つかりませんソケットを引き起こし、「[クライアント]」、ソケットファイルを見つけるために、MySQLのデフォルトのソケットファイルの場所で得られた「[mysqlの]」オプション「ソケット」パラメータは、このエラーを引き起こしました。


 

ソリューション:


ます。http://aiezu.com/article/mysql_cant_connect_through_socket.htmlここに解決策があり、さらに詳しくは、を参照することができます


1、mysqlのサービスが正常に動作していません。

サービスが開始されていない場合、私たちは、「サービスを開始mysqldの」サービスを開始するために実行します。サービスは、開始MySQLサービスのログを見に行った、原因を調べて再スタートを解決できない場合

[[email protected]〜]#サービスmysqldを開始

[OK]:mysqldを起動します

[[email protected]〜]#のlsof -i:3306

COMMAND PIDユーザFD型デバイスサイズ/ OFF NODE NAME

mysqldの14109 mysqlの10UのIPv4 247183583 0t0 TCP *:mysqlの(LISTEN)

[[email protected]〜]#サービスのmysqld状況

mysqldを(PID 14109)が実行されています...

 

2、MySQLの設定ファイルを向上させます:

MySQLのサービスの稼働時間を確認した場合、記事もこのエラーのタイトルを示唆、それはのプロフィール「な/etc/my.cnf」という質問です。ソリューション」は、2つのオプションの下に追加し、「[クライアント]」オプションと設定ファイルの「[mysqlの]」オプション、およびパラメータ値「ソケット」を「な/etc/my.cnf」の設定ファイルを変更することであり、 [mysqldを]パラメータ値は正確にソケットファイルパスのポイント「でオプション」」ソケット。次のとおりです。

[mysqldを】

DATADIR = /ストレージ/ DB / MySQLの

ソケット= /ストレージ/ DB / mysqlの/にmysql.sock

... n行は(愛グループE)は省略されています...


[クライアント]

デフォルトの文字セット= UTF8

ソケット= /ストレージ/ DB / mysqlの/にmysql.sock

 

[MySQLの】

デフォルトの文字セット= UTF8

ソケット= /ストレージ/ DB / mysqlの/にmysql.sock

 


これはすることができ、ファイルの場所で、私たちはただのmy.cnfファイルを変更してMySQLを伝えるソケットソケットパスに等しいmysqldumpを、mysqladminはコマンド、MySQLでどこソケットファイルのロケーションサービス、およびその後のmysqldサービスを再起動します。


 


3、PHPのmysqlの接続サービスプロンプト「ソケットを介してローカルのMySQLサーバーに接続できません...」ソリューション


時には、mysqlのサービスの稼働時間、ユーザー名とパスワードが完全に正しい、PHPのMySQLのにmysql_connect関数を使用しますが、「「は/ var / libに/ mysqlのソケットを介してローカルのMySQLサーバーに接続できませんプロンプト()関数の接続、通話mysql_errorのPHPはできません我々はに/etc/php.iniファイルを変更する必要がある/mysql.sock "」、。

「[MySQLの]」の項目の下に/etc/php.iniファイルに「mysql.default_socket」を見つけて、正しいサービスMySQLのソケットファイルにその値ポイントを設定し、このように:

[MySQLの]

... ... n行が省略されています

mysql.default_socket = "/storage/db/mysql/mysql.sock"

 


4、PythonのMySQLの接続プロンプトソリューション「はソケットを介してローカルのMySQLサーバーに接続できません...」です。


以下のようにファイルには、ソケットコネクタのMySQLデータベース機能を指定します。

#!は/ usr / binに/ pythonの

MySQLdbは、インポート接続から

CONN =接続(DB = "pzy"、ユーザ= "ルート"、ホスト= "localhost" を、unix_socket = "/貯蔵/ DB / MySQLの/にmysql.sock")

CUR = conn.cursor()

カウント= cur.execute( "ショー・データベース")

「そこに持っている%sのDBS」%回数印刷

conn.commit()

conn.close()

 


プロンプト5. PHPのPDO接続MySQLは「ソケットを介してローカルのMySQLサーバーに接続できません...」ソリューションを:


また、次のように接続文字列にmysqlのソケットファイルの位置を追加します。

<?phpの

$ DSN = "mysqlの:ホスト= localhostの; dbnameに= pzy; unix_socket = /ストレージ/ DB / mysqlの/にmysql.sock";

$デシベル=新しいPDO($ DSN、 'ルート'、 '');

$ RS = $ DB->クエリ( "qrtest SELECT * FROM");

一方、($行= $ RS->フェッチ()){

    ますprint_r($行)。

}

?>

この位置にmysql.sockが私のファイルをファイルと言う場所を補完するには/tmp/mysql.sockで開かれているが、それは空でした  

だから、これは確かに私の問題を/tmp/mysql.sockされていることを証明した実験後のいくつかの疑問が接続されているPHPされていませんでした  

  mysqlクライアントは、それが再起動php.iniのを変更することができますPHP-FPM  

 


おすすめ

転載: blog.51cto.com/sf1314/2477487