Để 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
không ghi chú trong /etc/mysql/my.cnf
và được 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
không ghi chú trong /etc/mysql/mysql.conf.d/mysqld.cnf
và được 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 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 chuyển đến terminal và nhập lệnh sau.
lsof -i -P | grep :3306
Điều đó sẽ trở lại một cái gì đó giống 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 phải tạo người dùng đó trong cả máy chủ cục bộ 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 của myuser thì bạn cần phải đọc cú pháp câu lệnh GRANT Ở ĐÂ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 một số lỗi bổ sung và dòng my.cnf thích hợp.
LƯU Ý:Nếu lsof không trả lại hoặc không được 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 hoạt động như mong đợi.
CẬP NHẬT:Nếu ngay cả sau khi thêm / thay đổi bind-address
trong my.cnf
không hoạt động, sau đó đi và thay đổi nó ở nơi mà nó đã được khai báo ban đầu:
/etc/mysql/mariadb.conf.d/50-server.cnf