2011-10-13 63 views
14

Tôi đang sử dụng PHP và MySQL để tạo kết nối cơ sở dữ liệu, thay đổi duy nhất là tôi đang cố truy cập máy chủ từ xa từ máy tính cục bộ bằng địa chỉ IP máy chủ của mình.Mysql - kết nối với máy chủ từ xa bằng địa chỉ IP

mysql_connect("x.xx.xx.x","username","password") or die(mysql_error()); 

và lỗi tôi nhận được là Unable to connect to the given host. Người dùng có tất cả các quyền và quyền.

+2

là máy chủ của bạn có thể truy cập từ máy tính của bạn không? Đặc biệt là cổng máy chủ MYSQL? – Fender

+0

thử kết nối thủ công từ thiết bị đầu cuối, điều này sẽ cho biết vấn đề ở đâu. – lynks

Trả lời

19

Hầu hết các cài đặt mặc định của MySQL chỉ nghe máy cục bộ.

Tìm cài đặt bind-address trong my.cnf trên máy chủ và đảm bảo rằng thiết bị đang nghe trên địa chỉ IP mà bạn đang nhắm mục tiêu. Bạn cũng có thể cần phải đảm bảo skip-networkingkhông phải là được bật!

Ngoài ra (! Và ít an toàn) sau đây sẽ thiết lập nó để lắng nghe trên tất cả các địa - địa phương và từ xa:

bind-address = 0.0.0.0 
+0

Cảm ơn tất cả các bạn đã giúp tôi thử tất cả điều này và tin rằng điều này sẽ giải quyết vấn đề của tôi – Frank

2

1) Kiểm tra các giao diện MySQL nghe cho các kết nối, địa phương (localhost, 127,0. 0,1) hoặc từ xa (0.0.0.0 hoặc địa chỉ IP). Đó là trong my.cnf. http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

2) Kiểm tra xem người dùng của bạn có đặc quyền tương ứng hay không. Người dùng đăng nhập từ localhost có thể có các priveleges khác nhau từ xa. Ví dụ 'user' @ 'localhost' và 'sử dụng' @ '%'

3

Cố gắng thêm một người dùng (user-name) cho phép kết nối từ địa chỉ IP:

mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY "PASSWORD"; 

user-name là tên người dùng mà bạn muốn tạo (như 'người mở rộng') IP là địa chỉ IP công khai của kết nối từ xa của bạn (như '195.xyz')

Tất nhiên, giới hạn các đặc quyền bạn muốn cấp (TẤT CẢ CÁC RIÊNG TƯ có lẽ không phải là lựa chọn của bạn)

+0

6 năm sau và điều này cực kỳ hữu ích, tôi đã thiết lập mọi thứ một cách chính xác, không cho phép người dùng truy cập mọi thứ tôi cần. – Craig

2

Trước khi bạn thử sử dụng PHP todo này. Mở terminal hay giao diện điều khiển của bạn và gõ như sau:

$ mysql -u username -h x.xx.xx.x -p

sau đó nhập mật khẩu của bạn

Hoặc trên cửa sổ sau đó loại:

\ path \ to \ mysql.exe -u username -h x.xx.xx.x -p

sau đó nhập mật khẩu

Điều này sẽ cung cấp cho bạn phản hồi chi tiết hơn về vấn đề xác thực sắp xảy ra. Và bạn có thể chắc chắn 100% rằng đăng nhập từ xa của bạn từ địa chỉ IP của bạn hoạt động. Nếu nó hoạt động tốt sau đó một cái gì đó trong mã PHP của bạn mà bạn đang thiếu.

Các vấn đề liên quan