2017-02-17 382 views
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(); 

思考?アイデア?意見ですか?

+0

最初は試行された接続です。 2番目のレコードは、Userテーブルからすべてのレコードを取得します。彼らは比較しない。 mysqlコマンドラインで 'select * from users'を試して、どれくらい時間がかかるかを見てください。その後、いくつかのログを試してみましょう - テストの間、mysqlの低速ログおよび/またはgeneral_logをオンにします。 – aynber

+0

@aynberコメントを投稿した後に更新される質問 – commanderZiltoid

+1

次のステップは、それが単なるテーブルか、それらのメソッドを使用するすべてのDBクエリかを調べることです。 'DB :: select(" SELECT NOW() ");を試して、それがタイムアウトするかどうか確認してください。 DB :: select( "SHOW TABLES");とDB :: select( "DESCRIBE users"); ' – aynber

答えて

0

私は同じ問題がありました。 var_dump(DB::connection());を実行し、間違った.envファイルが読み込まれたためにホストの値が間違っていることがわかりました。

関連する問題