我正在尝试使用PDO连接到外部数据库.
$dbh = new PDO('mysql:host=hotsname;port=3309;dbname=dbname', 'root', 'root');
Run Code Online (Sandbox Code Playgroud)
但是,这不适用于我拥有的特定服务器.
我想也许只允许某个主机,但我检查了mysql规则,并在我个人的服务器上尝试了这个代码并且连接正常.
所以我知道代码工作,并且他们不在我身边,并且防火墙正在接受对端口3309的请求并将其传递到端口3306上的正确服务器.
所以问题完全在一台服务器上.作为测试,我以为我打开端口3306来测试代码而不指定端口.
$dbh = new PDO('mysql:host=hotsname;dbname=dbname', 'root', 'root');
Run Code Online (Sandbox Code Playgroud)
这很直接.
所以我的问题是,为什么在添加端口时这会导致它无法连接到数据库.只有这个特定的服务器才有这个问题.
非常感谢您的时间.
更新
给出的错误只是"无法连接到xxx.xxx.xxx.xxx上的mysql服务器".
我现在稍微进一步了.代码现在正在工作,前提是我有一个防火墙规则允许使用3306在3306上传入服务器.所以,即使我已经指定了一个端口,它似乎忽略了这一点,并迫使它超出3306.
Sla*_*ser 11
您可能使用localhost主机名.将其切换为相应127.0.0.1应解决端口无知问题.