Laravel で新しいサイトの作業を始めたばかりですが、MYSQL (バージョン 5.5.25a) データベースへの接続に問題があります。mysql サーバーは同じローカル ネットワーク上にありますが、Web サーバー (OSX サーバー) とは別のマシン上にあります。このセットアップは、Codeigniter、YII、まっすぐな PHP などで長い間うまく機能しています。
データベース資格情報を使用して Laravel をセットアップしました/config/database.php
が、Laravel の PDO データベース クラスを使用してデータベース接続を行うページにサイトがあると、サイトがタイムアウトします。Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.
クロムで恐ろしいエラーが発生します。
資格情報を間違って入力した場合 (パスワード/ユーザー名/データベース名が間違っている)、Laravel は実際の MYSQL エラー メッセージSQLSTATE[28000] [1045] Access denied for user...
を表示するので、サーバーと正常に通信できるようです。
chromePHPを使用して迅速で汚いデータベース呼び出しをmysqli
行い、結果をログに記録すると、すべてが正常に動作しているように見え、データベースから正しい数の行が返され、タイムアウトも問題もありません。
$mysqli = new mysqli('192.168.1.178', 'username', 'password', 'dbname');
if ($mysqli->connect_error){
die ("Connect error: " . $mysqli->connect_error );
}
if ($result = $mysqli->query("SELECT username FROM user LIMIT 10")) {
ChromePhp::log($result->num_rows);
/* free result set */
$result->close();
}
アップデート
ログを確認しましたが、mysql からは何も得られませんでしたが、Apache のログにはタイムアウト時に次のエラーが表示されます。
child pid 60418 exit signal Segmentation fault (11)
また、phpinfo() が PDO クライアント API のバージョンが に設定されていることを示していることにも気付きました。mysqlnd 5.0.7-dev - 091210 - $Revision: 300533
このクライアント バージョンと MYSQL サーバー バージョンの不一致が問題を引き起こしているのではないでしょうか?
mysql で PDO を使用しようとすると、php/mysql がタイムアウトになるのはなぜですか?