PDO无法连接远程mysql服务器

时间:2013-07-13 13:45:17

标签: php mysql pdo connect

服务器A(192.168.1.3)

mysql server(5.6.12)port 6603,socket /var/run/mysql/mysql.sock

php(5.5.0)php.ini pdo_mysql.default_socket = /var/run/mysql/mysql.sock

服务器B(192.168.1.4)

mysql server(5.5.11)port 3306,socket /var/run/mysql/mysql.sock

服务器A在使用时工作

$conn = new PDO('mysql:hostname=localhost;dbname=DB_TEST','username','password');

但使用

时无法连接到服务器B.
$conn = new PDO('mysql:hostname=192.168.1.4;dbname=DB_TEST;port=3306','username','password');
  

错误:SQLSTATE [28000] [1045]访问被拒绝用户'用户名'@'localhost'   (使用密码:是)

但可以继续

$conn = mysql_connect('192.168.1.4:3306', 'username', 'password');

4 个答案:

答案 0 :(得分:15)

$conn = new PDO('mysql:hostname=192.168.1.4;dbname=DB_TEST;port=3306','username','password');

应该是

$conn = new PDO('mysql:host=192.168.1.4;dbname=DB_TEST;port=3306','username','password');

hostnamedsn无效,因此PDO忽略主机并使用默认值localhost

答案 1 :(得分:12)

好吧我也有同样的问题。解决方案是

之间的空间

mysql: host - >这项工作非常好!!!

这样你可以连接到远程mysql

答案 2 :(得分:2)

远程PDO mysql conex上的问题在db字符串上。正确的陈述是:

$conn = new PDO('mysql:host=192.168.1.4:3306;dbname=DB_TEST','username','password');

此致

答案 3 :(得分:1)

主机名无效,请使用主机。正确的陈述是:

$conn = new PDO('mysql:host=192.168.1.4:3306;dbname=DB_TEST','username','password');