服务器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');
答案 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');
hostname
对dsn
无效,因此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');