2011-07-16 3 views
1

既存のNginx Ubuntu 10.04サーバにPHP(php-fpm)を追加しましたが、pdo_mysqlを動作させることができません。私は他のどこかのMySQLサーバーに接続しようとしていますが、私が見つけたすべてのグーグル・アンサーはMySQLがローカル・サーバー上で動作していないという点で問題があります。pdo_mysqlがmysqld.sockファイルを作成できません

私にはmysqldがインストールされていないので、必要なのかどうかわからないのですか?また、mysqld.sockを作成できないのかどうかは、サーバー上にmysqlユーザーがいるのでしょうか?

エラー:

SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Fatal error: Call to a member function query() on a non-object 

私のPHPの接続コード:それが失敗した

$this->PDO = new PDO('mysql:host=' . $this->config->getValue('db_host') . 
          ';dbname=' . $this->config->getValue('db_name'), 
          $this->config->getValue('db_user'), 
          $this->config->getValue('db_pass')); 

マイクエリライン:

$PDOStatement = $this->PDO->query($query); 

任意のヘルプ、おかげで感謝しています。

+0

PDOはソケットファイルを作成しません。 MySQLサーバーはそうです。ソケットが見つからない場合は、MySQLが実行されていないか、PHPの設定が間違った場所を指しています。 –

答えて

1

カップルあなたはのmysql-クライアントがインストールされている

  • Dをチェックする必要がありますか?リモートマシンに接続している場合。あなたのボックスでmysqlを実行する必要はありませんが、私はあなたがまだクライアントが必要と思う。
  • ホストの値が正しいことを確認してください。ダブル&トリプルチェック

  • 最後に、次のコマンドで手動で接続してみます。

$ mysql -u <INSERT_USER_HERE> -p -h <INSERT_IP_OF_REMOTE_MACHINE_HERE> <INSERT_DB_NAME_HERE> 

それが動作しない場合。正確なエラーメッセージが表示されます。

+0

'mysql-client'バイナリは、PHPでは使用されておらず、必要もありません。 – duskwuff

+0

うん、私が必要だったのmysqlクライアント!私が必要としていたことを私の人生のために思い出すことができませんでした。非常にGaurishに感謝、迅速な対応を感謝します! – Slowfib

+0

@duskwuff - それでは、どのように問題を解決したのですか? – CuriousMind

0

サーバーがローカルMySQLインスタンスに接続しようとしています。データベースが別のリモートサーバーにある場合は、構成ファイルのdb_hostの値がMySQLサーバーの正しいホスト名を指していることを確認してください。

mysqldはインストールされていませんが、MySQLクライアントライブラリが必要です。物事の

0

$this->config->getValue('db_host')が正しい値を返していますか?あなたが記述している動作は、空の値またはnull値を返すように聞こえます。

関連する問題