【发布时间】:2018-04-02 18:43:50
【问题描述】:
好的,我已经研究了每个步骤并尽可能多地完成了,但仍然出现以下错误:
Error!: SQLSTATE[HY000] [2002] No connection could be made because
the target machine actively refused it.
(顺便说一句,这个解决方案,PHP Connection failed: SQLSTATE[HY000] [2002] Connection refused,不相关,我的问题是指连接到远程 mysql 服务器,而不是虚拟机,更改为端口 8888 或端口 8889 对消息没有影响..)
这是我所做的:
我在mysql中创建了一个远程连接:
GRANT ALL PRIVILEGES ON fin_sample.* to fin_test@'%' identified by '****';我把
bind-address = 0.0.0.0改成了/etc/mysql/mysql.conf.d/mysql.cnf确认我停止并重新启动了 mysql。
此时服务器应该正在接受远程连接。这是我的代码:
try {
$user = 'fin_test';
$pass = '****';
// Note "recommended" space after colon..
$dbh = new PDO('mysql: host=67.205.123.123;dbname=fin_test', $user, $pass);
foreach($dbh->query('SELECT * FROM fin_test.progview_sample') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
我想知道如何调试它,或者出了什么问题?无论我使用什么输入,我都会得到相同的响应。
【问题讨论】:
-
消除“推荐”空间,从连接主机中删除“.com”,删除所有获取代码(暂时),然后重试。有什么事吗?
-
见 enapupe 的answer。
-
删除空间和“.com”(切换到一个 IP 地址,我曾尝试过无数次排列)确实有效@aendeerei - 我不知道你的意思“获取代码” - 我可以说我似乎真正需要的唯一参数是 hostname=IP_address。
-
是的,就像“把车开给机械师,它就可以工作了”——我已经编辑了我的帖子。