繁体   English   中英

MySQL 错误 111 无法连接到服务器

[英]MySQL Error 111 Can't connect to server

我有一个连接到远程数据库的 connection.php 文件。 这是代码:

<?php
try {
    $conn = new PDO('mysql:host=IP;port=PORT;dbname=DBNAME', 'USERNAME', 'PASSWORD');
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
} 
?>

现在我认为我所有的变量都是正确的,因为我可以通过Toad连接到数据库。 我通过 localhost 为我自己的数据库连接使用了相同的 PDO 格式,它工作正常。 我不确定问题是什么。 由于我可以使用Toad,我相信服务器已经允许远程访问它,但我不确定。 任何输入都会很好。

这也是 PDOException 返回的错误:

SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'IP' (111)

111表示拒绝连接

这可能意味着您的MySQL服务器只监听localhost接口。

如果你有这样的行:

skip-networking
bind-address = 127.0.0.1

您应该在my.cnf配置文件中添加注释(在行的开头添加#),然后重新启动MySQL。

好吧,你/etc/mysql/my.cnf:你应该找到这个:

skip-networking
bind-address = 127.0.0.1

你必须评论第一个,并将IP更改为0.0.0.0或您想要允许的远程主机的IP(推荐)此外,您可能没有用户连接到该主机,我的意思是, mysql用户就像'root'@'192.168.1.1',所以你可能会尝试访问不存在的用户。 尝试创建它,然后授予它所有特权。 只需在mysql上执行这几个命令:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY '***'; GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.1.100' IDENTIFIED BY '***';

另外,如果使用linux,请确保mysql正在侦听正确的端口:

netstat -tlpn

应该做的工作,至少我是如何解决类似的问题。

我现在面临同样的错误几个小时。 原来我在我的代码中给出了错误的端口。

我要连接的端口是我使用的默认端口 3306 3327。

希望它可以帮助某人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM