连接到本地 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 容器时出现“读取初始通信数据包”错误