Php 使用MySQL PDO时出现分段错误

Php 使用MySQL PDO时出现分段错误,php,mysql,pdo,laravel,Php,Mysql,Pdo,Laravel,我刚刚开始在Laravel的一个新网站上工作,我在连接MYSQL(版本5.5.25a)数据库时遇到了问题。mysql服务器位于同一个本地网络上,但与web服务器(OSX服务器)位于不同的计算机上。很长一段时间以来,这个设置在Codeigniter、YII、straight up PHP等方面一直运行良好 我已经用我的数据库凭据设置了Laravel的/config/database.php,但是,只要它位于使用Laravel的PDO数据库类建立数据库连接的页面上,该站点就会超时。它给了我可怕的错误

我刚刚开始在Laravel的一个新网站上工作,我在连接MYSQL(版本5.5.25a)数据库时遇到了问题。mysql服务器位于同一个本地网络上,但与web服务器(OSX服务器)位于不同的计算机上。很长一段时间以来,这个设置在Codeigniter、YII、straight up PHP等方面一直运行良好

我已经用我的数据库凭据设置了Laravel的
/config/database.php
,但是,只要它位于使用Laravel的PDO数据库类建立数据库连接的页面上,该站点就会超时。它给了我可怕的
错误324(net::ERR\u EMPTY\u响应):服务器没有发送任何数据就关闭了连接。
chrome中的错误

如果我输入的凭据不正确(密码/用户名/数据库名错误),Laravel会给我一条真正的MYSQL错误消息,
SQLSTATE[28000][1045]拒绝用户访问…
,因此它似乎可以很好地与服务器通信

如果我使用
mysqli
快速地调用一个脏数据库,并用chromePHP记录结果,一切看起来都正常,它从数据库返回正确的行数,没有超时,也没有问题

$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服务器版本之间的这种不匹配是否会导致问题



当我尝试将PDO与mysql结合使用时,为什么php/mysql会超时?

您有两个CLI和浏览器环境。两者都应该与您的ip或“localhost”配合使用,但根据我的经验,一个环境在DB配置中与您的ip配合使用,另一个环境在DB配置中与“localhost”配合使用。

我在试用Laravel 4 beta时遇到了此错误。从命令行运行迁移时,我会看到
分段错误:11

事实证明,我的问题是安装了MAMP的副作用。phpMAMP版本仅在浏览器中运行。开箱即用,OSX自带了自己的php版本。这是在命令行中使用
php
时将运行的OS X版本


快速修复方法是将MAMP php目录添加到.profile或.bash_概要文件中。关于如何做到这一点,有更好的指南。

我的站点位于虚拟域上,因此我通过
http://some-made-up-address.dev
通过我的浏览器。如上所示,我通过IP地址连接到数据库,因为它不在localhost的范围内。这种设置在其他框架中没有给我带来任何问题。如果我在codeigniter或yii设置中输入相同的凭据,它会很好地连接到数据库。这可能与此有关(Laravel正在使用PDO MySQL)。似乎我不是唯一一个有此问题的人,这可能与我使用的apple设置有关phpinfo()显示PDO客户端API版本设置为
mysqlnd 5.0.7-dev-091210-$Revision:300533
,我想知道这是否会导致问题?