好的,我已经研究过每一步并尽可能多地完成并仍然得到以下错误:
Error!: SQLSTATE[HY000] [2002] No connection could be made because
the target machine actively refused it.
(BTW这个解决方案,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();
}
我想知道我是如何调试这个,或者出了什么问题?无论我使用什么输入,我都得到相同的响应。
答案 0 :(得分:0)
我能够通过以下方式解决以下问题:
hostname=..
.com
的愚蠢错误。 警告的!! PDO不会告诉你你正在连接错误的地方!hostname
设为IP地址我确实知道你必须修改bind-address并重新启动要调用的数据库的mysql。