0

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 がタイムアウトになるのはなぜですか?

4

2 に答える 2

1

CLIとブラウザの2つの環境があります。どちらも IP または「localhost」で動作するはずですが、私の経験では、1 つの環境は DB 構成で IP で動作し、もう 1 つの環境は DB 構成で「localhost」で動作します。

于 2012-11-27T05:06:59.240 に答える
1

Laravel 4 ベータ版を試しているときに、このエラーで問題が発生しました。Segmentation fault: 11コマンドラインから移行を実行するときに表示されます。

結局のところ、私の問題はMAMPをインストールしたことの副作用でした。php MAMPのバージョンは、ブラウザーでのみ実行されます。OS X には、すぐに使用できる独自のバージョンの php が付属しています。phpこれは、コマンド ラインでを使用したときに OS X が実行するバージョンです。

簡単な修正は、MAMP php ディレクトリを .profile または .bash_profile ファイルに追加することです。これを行う方法に関するより良いガイドがありますhere .

于 2013-02-18T19:45:55.033 に答える