Mysql 无法连接,因为目标机器主动拒绝

Posted

技术标签:

【中文标题】Mysql 无法连接,因为目标机器主动拒绝【英文标题】:Mysql No connection could be made because the target machine actively refused it 【发布时间】:2014-05-09 07:20:27 【问题描述】:

我知道已经有很多人问过这个问题,但是这个人大多忘记了被防火墙阻止的密码,我没有这种情况。

我正在使用 php 进行开发,我需要连接到远程数据库以让我的所有团队都可以使用它。

localhost 一切正常,但是当我尝试切换时,它给了我这个错误

无法建立连接,因为目标机器主动 拒绝了。

这是我要连接到 .nf.biz 数据库的代码:

$db=mysqli_connect($host,$user,$password,$db_name,3306);

【问题讨论】:

这不是代码问题,而是网络配置问题。 smartftp.com/support/kb/connection-refused-f58.html 我什至禁用了我的防火墙,但还是一样!! 可能 MySQL 没有运行(因此操作系统拒绝连接)。 或者你指向错误的机器。 【参考方案1】:

您的 MySQL 服务器仅接受 *nix 套接字(/var/run/mysqld/mysqld.sock,如果您正在运行 Ubuntu)或仅本地主机上的连接。

您必须编辑您的 my.cnf(在 Ubuntu 上再次位于 /etc/mysql/my.cnf)并更改以下内容:

bind-address = 0.0.0.0

并注释掉以下内容

#skip-networking

最后重启 MySQL。

请注意,如果您的 MySQL 机器可以从公共 Internet 访问,则将接受来自所有人的连接!

【讨论】:

我之前看到过这个解决方案,但我没有在 my.ini 中找到绑定地址! MySQL 运行在哪个操作系统上? 我正在使用 8.1,wamp 是我的 apache 和 mysql 客户端 好的。然后你必须将它添加到 [mysqld] 部分。还要确保跳过网络被注释掉。 我确实重启了机器,但什么也没发生,这是你需要的结果,TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 5420【参考方案2】:

即使这不是你的情况,我也会在这里添加答案,因为这个错误的消息是一样的。

当您在 c:\Windows\System32\Drivers\etc\hosts 中有 localhost 的别名时,MySQL 服务器中存在错误,MySQL 服务器无法接受到 localhost 的连接。

删除别名,MySQL 服务器将开始接受到 localhost 的连接。

【讨论】:

【参考方案3】:

我解决了只在绑定地址中添加端口的问题:127.0.0.1:3388

【讨论】:

【参考方案4】:

没有#skip-networking选项。

我通过散列绑定地址行来解决它(见下面的第 3 行)。

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.**
#bind-address       = 127.0.0.1

【讨论】:

在 linux ubuntu 20 这是编辑配置的 cmd sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf【参考方案5】:

这可能有点晚了,但对于未来的访客来说,

我当时发现 biz.nf 拒绝从外部来源与其数据库的任何连接,这意味着只有 biz.nf 可以访问他们的数据库,但您会被拒绝。

【讨论】:

【参考方案6】:

转到服务启用以root用户命名的服务(在“登录为”类别下->网络服务)

【讨论】:

【参考方案7】:

我通过将 my.cnf 中的绑定地址设置为服务器的 public IP 地址来解决此问题:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = SERVER_IP_ADDRESS

【讨论】:

【参考方案8】:

当数据库没有响应时会发生此错误。

我通过以下步骤解决了这个错误:

    按 CTRL+R,然后键入 service.msc。将打开一个窗口。 检查 MYSQL56 或 MYSQL57,点击它。 现在位于窗口的左下角。点击展开。 再次刷新窗口,您可以看到启动服务选项。 点击它,错误就解决了。

这对我有用。希望您的错误也得到解决。 给我发邮件:rkkp1023@gmail.com

【讨论】:

您能进一步解释一下吗?我认为在使用远程数据库时没有任何可能进入某些服务管理器,正如这个问题中给出的那样【参考方案9】:

在 Windows 10 上使用 Wamp (php7)... 它当前正在工作,然后突然显示该错误。我重新启动了我的笔记本电脑,错误消失了......

【讨论】:

【参考方案10】:

您必须为当前活动的 mysql 服务器启动服务,例如我的是 mysql80,因此以下步骤可能会有所帮助:

start> cmd>run as administrator> sc start mysql80

【讨论】:

您能进一步解释一下吗?我认为在使用远程数据库时没有任何可能进入某些服务管理器,正如这个问题中给出的那样【参考方案11】:

您的 MySQL 服务器仅接受 *nix 套接字上的连接(/var/run/mysqld/mysqld.sock,如果您正在运行 Ubuntu)或仅适用于 localhost。

您必须编辑您的 my.cnf(在 Ubuntu 上再次位于 /etc/mysql/my.cnf)并更改以下内容:

bind-address = 0.0.0.0

并注释掉以下内容

#skip-networking

最后重启 MySQL。

请注意,如果您的 MySQL 机器可以从公共 Internet 访问,则将接受来自所有人的连接!

sudo -s
sudo gedit /etc/mysql/my.cnf
bind-address = 0.0.0.0
#skip-networking
save
sudo service mysql restart

工作完美!

【讨论】:

以上是关于Mysql 无法连接,因为目标机器主动拒绝的主要内容,如果未能解决你的问题,请参考以下文章

当我启动 apache MySQL 服务器时,我收到错误“(HY000/2002):无法建立连接,因为目标机器主动拒绝它。”

mysqli_connect(): (HY000/2002): 无法连接,因为目标机器主动拒绝

mysqli_connect(): (HY000/2002): 无法连接,因为目标机器主动拒绝

连接被对方​​拒绝:10061:无法建立连接,因为目标机器主动拒绝它

.NET 4 新的 TCP 客户端无法连接:无法建立连接,因为目标机器主动拒绝它

因为目标机器主动拒绝而无法建立连接?