PDO无法连接远程mysql服务器 [英] PDO cannot connect remote mysql server

查看:50
本文介绍了PDO无法连接远程mysql服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

服务器A(192.168.1.3)

server A(192.168.1.3)

mysql服务器(5.6.12)端口6603,套接字/var/run/mysql/mysql.sock

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

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

服务器B(192.168.1.4)

server B(192.168.1.4)

mysql服务器(5.5.11)端口3306,套接字/var/run/mysql/mysql.sock

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

使用时在服务器A中工作

In server A is work when use

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

但在使用时无法连接到服务器B

but cannot connect to server B when use

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

ERROR:SQLSTATE [28000] [1045]用户'username'@'localhost'的访问被拒绝 (使用密码:是)

ERROR:SQLSTATE[28000] [1045] Access denied for user 'username'@'localhost' (using password: YES)

但要继续工作

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

推荐答案

$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');

hostname对于dsn无效,因此PDO忽略主机并使用默认值localhost

hostname is invalid for dsn and so PDO is ignoring host and using default, which is localhost

这篇关于PDO无法连接远程mysql服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆