【问题标题】:Mysql connection refused on localhost本地主机上的 MySQL 连接被拒绝
【发布时间】: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

【问题讨论】:

  • 可以设置端口吗?
  • 端口应该是什么?
  • 可能与“没有此类文件”有关的其他问题重复:thisthat...

标签: php mysql macos


【解决方案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 的东西,但这仍然不起作用。我还有什么需要做的吗?
猜你喜欢
  • 2020-03-14
  • 2016-10-08
  • 2014-05-31
  • 2015-12-12
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多