本地主机上的 MySQL 连接被拒绝
Posted
技术标签:
【中文标题】本地主机上的 MySQL 连接被拒绝【英文标题】:Mysql connection refused on localhost 【发布时间】:2016-01-27 00:56:52 【问题描述】:升级到 El Capitan 后,我在连接到 mysql 时遇到问题。我有一个名为 index.php
的基本 PHP 文件,代码如下:
<?php
$conn = new mysqli("127.0.0.1", "xxxx", "xxxx");
if ($conn->connect_error) die("Connection failed: " . $conn->connect_error);
echo "Connected successfully";
?>
现在,当我在浏览器中访问该页面时,我收到以下消息:
Warning: mysqli::mysqli(): (HY000/2002): Connection refused in /Users/rich/Documents/DESIGN/test/index.php on line 3
Connection failed: Connection refused
我不明白这里出了什么问题。我应该提一下,升级之前我在优胜美地也遇到了这个问题。当我擦拭我的计算机进行全新安装并且不得不再次设置 Apache 和 PHP 配置时,问题就开始了。我认为其中一个文件一定遗漏了一些东西。
编辑
我也尝试在连接中使用localhost
而不是127.0.0.1
。这会将错误略微更改为:
Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /Users/rich/Documents/DESIGN/test/index.php on line 4
Connection failed: No such file or directory
【问题讨论】:
可以设置端口吗? 端口应该是什么? 可能与“没有此类文件”有关的其他问题重复:this 或 that... 【参考方案1】:尝试使用 localhost 而不是 127.0.0.1 并确保您使用的用户名/密码正确并且存在于 mysql 服务器上。还要检查 mysqld 是否正在运行,以及您的防火墙是否允许 mysql 数据库通过。
编辑您的 php.ini 文件并确保在 Windows 上启用 extension=php_mysqli.dll 或在 Linux 上启用 extension=php_mysqli.so。
在这里尝试答案:PHP - MYSQL - test database server
您必须检查两个设置才能使其正常工作(假设您当然安装了 MySQL 服务器):
在你的 PHP 配置中检查 mysql.default_socket 的值。
检查 MySQL 配置文件中 [mysqld] 标题下的 socket 值。
这些值必须相同;如果不是,请更改一个以匹配另一个并重新启动相应的服务。
【讨论】:
使用localhost
将错误略微更改为:Warning: mysqli::mysqli(): (HY000/2002): No such file or directory
。我的防火墙关闭了,所以不能这样。用户名和密码正确,因为某些原因我仍然可以通过 sequel pro 连接。
我启用了extension=php_mysql.dll
(顺便说一句,我使用的是 Mac,而不是 Windows 或 Linux)。这仍然没有奏效。
是的,但是您需要为 mysqli 功能启用 mysqli。使用 mysql 你只能使用 mysql_calls
有人给我这个答案是否定的原因吗?这些都是在收到这些类型的错误时要检查的所有内容。您确实需要 mysqli 才能使用 mysqli 调用。
不知道为什么有人对我的问题投了反对票……据我所知,我已经启用了所有 mysqli 的东西,但这仍然不起作用。我还有什么需要做的吗?以上是关于本地主机上的 MySQL 连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章