PDO无法连接远程mysql服务器

con*_*tan 8 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');
Run Code Online (Sandbox Code Playgroud)

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

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

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

但努力

$conn = mysql_connect('192.168.1.4:3306', 'username', 'password');
Run Code Online (Sandbox Code Playgroud)

ban*_*nsi 15

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

应该

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

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


小智 14

好吧我也有同样的问题.解决方案是两者之间的空间

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

这样你就可以连接到远程mysql了