Để hiển thị MySQL với bất kỳ thứ gì khác ngoài localhost, bạn sẽ phải có dòng sau
Đối với phiên bản mysql 5.6 trở xuống
bỏ ghi chú vào /etc/mysql/my.cnf
và gán cho máy tính của bạn địa chỉ IP và không lặp lại
Đối với phiên bản mysql 5.7 trở lên
bỏ ghi chú vào /etc/mysql/mysql.conf.d/mysqld.cnf
và gán cho máy tính của bạn địa chỉ IP và không lặp lại
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Hoặc thêm một
bind-address = 0.0.0.0
nếu bạn không muốn chỉ định IP
Sau đó dừng và khởi động lại MySQL với mục nhập my.cnf mới. Sau khi chạy, hãy truy cập vào thiết bị đầu cuối và nhập lệnh sau.
lsof -i -P | grep :3306
Điều đó sẽ trở lại một cái gì đó như thế này với IP thực của bạn trong xxx's
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Nếu câu lệnh trên trả về chính xác thì bạn sẽ có thể chấp nhận người dùng từ xa. Tuy nhiên, để người dùng từ xa kết nối với các đặc quyền chính xác, bạn cần tạo người dùng đó trong cả localhost và '%' như trong.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
sau đó,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
và cuối cùng,
FLUSH PRIVILEGES;
EXIT;
Nếu bạn không có cùng một người dùng được tạo như trên, khi đăng nhập cục bộ, bạn có thể kế thừa các đặc quyền của localhost cơ sở và gặp vấn đề về quyền truy cập. Nếu bạn muốn hạn chế quyền truy cập mà myuser có thì bạn cần phải đọc cú pháp câu lệnh GRANT TẠI ĐÂY Nếu bạn vượt qua tất cả những điều này và vẫn gặp sự cố, hãy đăng thêm một số đầu ra lỗi và dòng my.cnf thích hợp.
LƯU Ý: Nếu lsof không trở lại hoặc không tìm thấy, bạn có thể cài đặt nó TẠI ĐÂY dựa trên bản phân phối Linux của bạn. Bạn không cần lsof để làm cho mọi thứ hoạt động, nhưng nó cực kỳ tiện dụng khi mọi thứ không như mong đợi.