我真的很挣这个。我有一个运行神奇的独角兽类型应用程序的新服务器,以及运行访问数据库的旧服务器(可以称之为系统)
我已经设置好所以我可以通过oldbadserver访问新服务器上的phpMyAdmin:82 - 所以理论上我会期望我可以通过使用ip从任何地方运行php脚本(就像我可以在旧服务器上)像这样的端口地址:
<?php
$host="oldserveriphere"; //so because its port 82 its forwarded to the new server
$username="uname";
$password="mypassword";
$dbname="mydbname";
$port="3306"; //mysql port
try {
$dbh = new PDO("mysql:host=$host;port=$port;dbname=$dbname;charset=utf8", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "I am connected.<br/>";
// ... continue with your code
// PDO closes connection at end of script
} catch (PDOException $e) {
echo 'PDO Exception: ' . $e->getMessage();
exit();
}
?>
但我明白了:
我错过了一些明显的东西吗?我觉得它试图在旧服务器上找到mysql因为我没有在任何地方实际上将端口82放在那里,但是如果我确实将它改为PDO例外:SQLSTATE [HY000] [2003]无法连接到'oldserveriphere'上的MySQL服务器(110)
$host="oldserveriphere:82";
那么我得到:
PDO异常:SQLSTATE [HY000] [2005]未知的MySQL服务器主机'oldserveriphere'(2)