Làm cách nào để thiết lập máy chủ MySql để chấp nhận kết nối từ xa?


16

Tôi đang cài đặt máy chủ MySql trong máy tính để bàn Ubuntu. Tôi có thể kết nối Trình duyệt truy vấn MySql với Trình duyệt khi chỉ định Server Hostnamelocalhost, nhưng khi tôi thay thế bằng IP của máy thì nó sẽ ngừng hoạt động (ngay cả khi Trình duyệt truy vấn MySql chạy trong cùng một máy).

Tất cả những gì tôi đã làm cho đến nay là loại bỏ các iptables, nhưng có vẻ như nó không liên quan gì đến nó.

Đây là thông báo lỗi

Không thể kết nối với máy chủ '192.168.0.2'.

Lỗi MySQL Nr. 2003

Không thể kết nối với máy chủ MySQL trên '192.168.0.2' (111)

Nhấp vào nút 'Ping' để xem có vấn đề về mạng không.

Ping là ok, mặc dù

Câu trả lời:


22

Bạn sẽ phải liên kết mysqld của mình với IP khác với 127.0.0.1.

Mở my.cnf của bạn (/etc/mysql/my.cnf thường) và thay đổi dòng nói

bind = 127.0.0.1

với bất kỳ IP nào mà máy của bạn sử dụng để kết nối với thế giới bên ngoài. 0.0.0.0liên kết với tất cả các địa chỉ IP. Đừng quên khởi động lại mysqld của bạn sau thay đổi đó.


bây giờ đã có một lỗi khác: Không thể kết nối với máy chủ '192.168.0.2'. Lỗi MySQL Nr. 1130 Máy chủ 'any-vubfox.local' không được phép kết nối với máy chủ MySQL này
Jader Dias

user @ localhost và user @ <hostname> là khác nhau. Bạn phải thêm người dùng để có thể kết nối từ các máy chủ từ xa.
James

Đây không phải là vấn đề. Tôi đã làm điều này và tôi vẫn nhận được lỗi.
Cerin

Có nên như bind-addressvậy không?
Thomas Weller


2

Một số vấn đề tiềm năng hơn được giải thích ở đây:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html http://dev.mysql.com/doc/refman/5.1/vi /access-denied.html

Nếu bạn muốn cấp tất cả các đặc quyền cho tất cả các cơ sở dữ liệu, hãy thử

grant all on *.* to 'joe'@'%';

Tuy nhiên, trước khi bạn làm điều đó, hãy đảm bảo rằng bạn có một người dùng trong cơ sở dữ liệu "mysql" đã đặt "Máy chủ" thành địa chỉ IP của bạn - trong trường hợp của tôi, IP của tôi ở đây. Vì vậy, người dùng "joe" có thể có nhiều hơn một bản ghi, một bản ghi cho mỗi IP mà anh ta có thể gọi từ đó. Để xem những gì bạn có trong đó:

use mysql;
select Host, User, Password from user where user='joe';`

Trong trường hợp của tôi, hóa ra người dùng của tôi bây giờ đã có IP chính xác nhưng mật khẩu cũng bị thiếu. Tôi đã cắt mật khẩu (nó bị băm hoặc một cái gì đó) và điều này đã giải quyết vấn đề kết nối từ xa cụ thể của tôi:

update user set Password='5493845039485' where user='joe';

Một điều nữa, trong my.cnf bạn có thể muốn đặt "port = 3306" hoặc bất kỳ cổng nào bạn dự định sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.