mysql_connect超时

时间:2011-03-04 17:44:15

标签: php mysql mysql-connect

我正在尝试在我的Mac 10.6计算机上设置PHP框架,并且由于数据库连接问题,它在设置期间一直出错。所以我整理了一个小的PHP脚本,看看我是否可以自己连接到服务器,它也不能。操作超时。

但是,我能够完全从命令行登录mysql。只有PHP才有这些连接问题。有没有人有任何想法?

这是脚本。

<?php
  $connection = mysql_connect("http://localhost", "root", "");
if( $connection ) {
  mysql_close( $connection );
  die('TRUE');
}else {
  die('Could not connect: ' . mysql_error());
}

?>

编辑:我尝试删除http://然后我收到“没有这样的文件错误。”

PHP Warning:  mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/newuser/Downloads/t.php on line 2
PHP Warning:  mysql_connect(): No such file or directory in /Users/newuser/Downloads/t.php on line 2
Could not connect: No such file or directory

4 个答案:

答案 0 :(得分:3)

你正在使用这个:

mysql_connect("http://localhost", "root", "");

但你的MySQL主机不是http://localhost:它可能是localhost


尝试使用以下内容删除http://

mysql_connect("localhost", "root", "");


作为旁注:即使在开发平台上,使用root帐户也不是一个好习惯。


评论后编辑:在这种情况下,请尝试127.0.0.1 localhost的IP地址


如果你真的想使用Unix套接字,你必须找到你的MySQL服务器使用哪个套接字(它应该在其配置中指出);例如,在我的/etc/mysql/my.cnf中,我有:

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock

然后,你会希望PHP使用相同的:

答案 1 :(得分:1)

从mysql_connect参数中取出“http://”。它需要主机,而不是HTTP URL。

答案 2 :(得分:1)

删除http://并仅使用主机名localhost

答案 3 :(得分:1)

使用“127.0.0.1”它将强制使用TCP4 insted of socket。

如果你想使用套接字,根据this document,Mac OS X上的默认套接字是:

/tmp/mysql.sock

这是默认你应该编辑你的php配置或者有一个 .htaccess 文件:

php_value mysql.default_socket "/tmp/mysql.sock"