簡體   English   中英

PDO無法連接遠程mysql服務器

[英]PDO cannot connect remote mysql server

服務器 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 server(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] 用戶 'username'@'localhost' 訪問被拒絕(使用密碼:是)

但繼續努力

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

hostnamedsn無效,因此PDO忽略主機並使用默認值,即localhost

好的,我也有同樣的問題。 解決方案是之間的空間

mysql: host --> 這個工作得很好!!!

這樣你就可以連接到遠程mysql

遠程 PDO mysql conex 上的問題出在 db 字符串上。 正確的說法是:

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

主機名無效,請改用主機。 正確的說法是:

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

我也遇到過類似的問題。 用戶名區分大小寫。 不要像我一樣白痴,花 15 分鍾對密碼、端口等進行故障排除...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM