• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PDO_MYSQLを利用したDB接続ができない)

PDO_MYSQLを利用したDB接続ができない

このQ&Aのポイント
  • 次のコードを実行してMYSQLへの接続をしようとするとエラーが発生しました。
  • 具体的なエラーメッセージは「SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)」です。
  • mysql_connect()では接続できることが確認されていますが、PDO_MYSQLを利用した接続については原因が不明です。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

PDOで使っているsocket(/var/lib/mysql/mysql.sock)はMySQLのものと同一でしょうか。 まずはそれを確認してください。

mookun2007
質問者

お礼

お礼遅れてしまい申し訳ございません。 ご指摘の通り、socketのパスが間違っていました。 mysqlのパスは変更されていて、PDOの方がデフォルトのままだったので気付きませんでした。 この度はご回答頂きありがとうございました。

その他の回答 (1)

  • mimzy
  • ベストアンサー率33% (32/96)
回答No.2

Mysqlサーバの設定が/var/lib/mysql/mysql.sockではないのでしょう。 my.cnfで確認したのち PDO('mysql:host=localhost;dbname=DB名', 'ユーザ名', 'パスワード'); を PDO('mysql:host=localhost:/your_path/mysql.sock;dbname=DB名', 'ユーザ名', 'パスワード'); これでうまくいかなければ、 PDO('mysql:host=localhost;unix_socket=/your_path/mysql.sock;dbname=DB名', 'ユーザ名', 'パスワード'); のように変更してみてください。 因みに私の環境ではmysql.sockではなくmysqld.sockとなっています。

mookun2007
質問者

お礼

質問を締め切るのを忘れてしまっていました。 ご回答頂きありがとうございます。 ご指摘の通り、socketのパスが間違っていました。 mysqlのパスは変更されていて、PDOの方がデフォルトのままだったので気付きませんでした。 この度はご回答頂きありがとうございました。

関連するQ&A

専門家に質問してみよう