Tôi đang cố gắng để kết nối với cơ sở dữ liệu MySQL từ xa sử dụng PDO, nhưng nó thất bại với lỗi:PHP PDO kết nối đến MySQL thất bại, mysql_connect hoạt động tốt
Connection failed: SQLSTATE[28000] [1045] Access denied for user 'my_user'@'some.ip.address' (using password: YES)
Đây là cách tôi đang cố gắng để kết nối:
$dsn = "mysql:host=sql.my_domain.nazwa.pl;dbname=my_db;port:3307";
$user = "my_user";
$password = "my_password";
try {
$this->db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
và không thành công. Nhưng theo cách này:
mysql_connect('sql.my_domain.nazwa.pl:3307', 'my_user', 'my_password');
hoạt động tốt.
Bất cứ ai có bất kỳ ý tưởng nào có thể sai với PDO, cấu hình, thông số tôi đã đặt hoặc có thể là máy chủ cụ thể này (nazwa.pl)?
[SOLVED] Ok, do đó rất đơn giản (nhưng cũng khó khăn để nhận ra ...) lỗi cú pháp, nó phải là một =
thay vì :
trong port
phần của dsn
.
sự khác biệt là gì? – PeeHaa
@PeeHaa Một định dạng? Tôi đã luôn luôn sử dụng một PDO trên cùng một máy tính như Apache, nhưng các tài liệu mà tôi tìm thấy ngụ ý cú pháp như trên. – Fluffeh
Thật đáng xấu hổ ... Tôi không nhận thấy, rằng sau 'cổng' nên ở lại '=' không ':'. Bây giờ nó hoạt động. Cảm ơn rất nhiều, đó là câu trả lời đúng. – zelazowy