本地主机上的 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 连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

本地主机上的连接被拒绝

XMPP Openfire 连接被拒绝

Tomcat/Hibernate 与 MySql 的连接失败,出现“通信链接失败”和“权限被拒绝”

Cosmos SDK远程连接被拒绝

连接到本地 MySQL 服务器时出现“连接被拒绝”错误?

windows 无法在本地计算机上启动服务错误 5 访问被拒绝