2

我正在尝试在我的 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

4 回答 4

3

你正在使用这个:

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

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


尝试删除它http://,使用这个:

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


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


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


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

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

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

于 2011-03-04T17:46:16.457 回答
1

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

于 2011-03-04T17:46:34.013 回答
1

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

于 2011-03-04T17:52:22.910 回答
1

使用“127.0.0.1”,它将强制使用 TCP4 安装的套接字。

如果要使用套接字,根据本文档,Mac OS X 上的默认套接字是:

/tmp/mysql.sock

将此作为默认设置,您应该编辑您的 php confiuration 或拥有一个.htaccess文件:

php_value mysql.default_socket "/tmp/mysql.sock"
于 2011-03-04T17:52:27.610 回答