我正在尝试在我的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
答案 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使用相同的:
mysql.default_socket
指令,':/path/to/socket'
mysql_connect()
答案 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"