8

服务器 A(192.168.1.3)

mysql服务器(5.6.12)端口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服务器(5.5.11)端口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] 用户“用户名”@“本地主机”的访问被拒绝(使用密码:是)

但继续努力

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

3 回答 3

18
$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

于 2013-07-13T13:53:33.820 回答
12

好的,我也有同样的问题。解决方案是之间的空间

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

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

于 2014-08-21T17:15:24.900 回答
3

远程 PDO mysql conex 上的问题出在 db 字符串上。正确的说法是:

$conn = new PDO('mysql:host=192.168.1.4:3306;dbname=DB_TEST','username','password');
于 2016-12-10T12:26:54.033 回答