0
アプリケーションを開発マシンからテストサーバーに移動しています。私のローカル開発のmysqlデータベースに接続すると、すべて正常に動作します。テストサーバーに接続しようとすると、リクエストは45秒後にタイムアウトし、500エラーが返されます。データベースに接続するときのLaravel接続のタイムアウト
私は、サーバーが通信することができ、PHPは基本mysqliのPHPの機能を使用して結果を得ることができ、かつ期待通りの結果が返されることをテストした:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo var_export($row, true);
}
} else {
echo "0 results";
}
$conn->close();
laravelの両方で失敗し、ヒットタイムアウト制限以下:
$users = DB::table('users')->get();
$users = User::all();
思考?アイデア?意見ですか?
最初は試行された接続です。 2番目のレコードは、Userテーブルからすべてのレコードを取得します。彼らは比較しない。 mysqlコマンドラインで 'select * from users'を試して、どれくらい時間がかかるかを見てください。その後、いくつかのログを試してみましょう - テストの間、mysqlの低速ログおよび/またはgeneral_logをオンにします。 – aynber
@aynberコメントを投稿した後に更新される質問 – commanderZiltoid
次のステップは、それが単なるテーブルか、それらのメソッドを使用するすべてのDBクエリかを調べることです。 'DB :: select(" SELECT NOW() ");を試して、それがタイムアウトするかどうか確認してください。 DB :: select( "SHOW TABLES");とDB :: select( "DESCRIBE users"); ' – aynber