【问题标题】:“Connection refused” error when connecting to local MySQL server?连接到本地 MySQL 服务器时出现“连接被拒绝”错误?
【发布时间】:2012-06-25 23:31:48
【问题描述】:

我遇到了这个错误:

Warning: mysql_connect(): [2002] Connection refused (trying to connect via tcp://127.0.0.1:3306)

我看到了一个类似的问题,我通过将localhost 更改为127.0.0.1 来尝试解决方案,但它仍然无法正常工作。我正在使用 Mac OS X Lion。请任何帮助将不胜感激

这是我用来连接的 PHP 代码:

<?php
    require("constants.php");
    // open database
    $connect = mysql_connect(DB_SERVER,DB_USER,DB_PASS) or die('error connecting: ' . mysql_error());
    // select database
    mysql_select_db(DB_NAME) or die('error selecting db: ' . mysql_error());
?>

【问题讨论】:

  • 您的数据库服务器是否真的在同一台机器上监听 TCP 端口 3306?尝试从终端连接到 mysql,明确指定主机和端口
  • 你的数据库真的在运行吗?使用ps -elf | grep mysql 进行检查。你应该有两个结果。
  • @i.am.michiel 当我检查时我得到了这个结果 501 281 277 4006 0 31 0 2434892 540 - R+ ffffff800b80e440 ttys000 0:00.00 grep mysql 1:09pm
  • 您的 MySQL 服务器未启动。开始吧。
  • @i.am.michiel 你说得对,谢谢迈克尔

标签: php mysql localhost


【解决方案1】:

请尝试确保您的防火墙对端口 3306 上的连接开放。

命令应该是ipfw set enable 3306,但如果你愿意,你可以阅读更多关于setting the firewall permissions的信息。

另一件事可能是确保 MySQL 正在侦听端口 3306,编辑 my.ini 文件并设置

[client]
port=3306

然后重启 MySQL。

【讨论】:

    【解决方案2】:

    我以前也遇到过这个问题。您可以通过在配置中注释掉“skip-networking”来修复它。 (my.ini 或 my.cnf,Linux 上是 /etc/mysql/my.cnf,Mac 不确定)

    -- 编辑
    此外,您可以尝试在终端中键入“netstat”,以确保那里列出了 mysql(应该类似于 127.0.0.1:mysql 或 127.0.0.1:3306)。如果未列出,则说明 MySQL 尚未启动,或无法绑定。

    【讨论】:

    • 我输入了 netstat,我在列表中最接近的是 tcp4 0 0 localhost.49153 localhost.1023 ESTABLISHED tcp4 0 0 localhost.1023 localhost.49153 ESTABLISHED
    猜你喜欢
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多