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

Posted

技术标签:

【中文标题】连接到本地 MySQL 服务器时出现“连接被拒绝”错误?【英文标题】:“Connection refused” error when connecting to local MySQL server? 【发布时间】: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 你说得对,谢谢迈克尔 【参考方案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

以上是关于连接到本地 MySQL 服务器时出现“连接被拒绝”错误?的主要内容,如果未能解决你的问题,请参考以下文章

111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误

PG :: ConnectionBad:无法连接到服务器:连接被拒绝

OperationalError:(2003,“无法连接到'localhost'上的MySQL服务器([Errno 111]连接被拒绝)”)[关闭]

尝试从主机连接到 mysql docker 容器时出现“读取初始通信数据包”错误

尝试连接到 localhost phpmyadmin 时出现错误

Mariadb docker容器无法使用Python连接到主机上的MySQL服务器(111连接被拒绝)