Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết nối từ xa Mysql Ubuntu

Để 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt múi giờ của MySQL?

  2. MySQL và PHP:UTF-8 với các ký tự Cyrillic

  3. Có bất lợi nào khi sử dụng varchar chung (255) cho tất cả các trường dựa trên văn bản không?

  4. Thay đổi dấu phân tách thập phân trong MySQL

  5. Cách nhập và xuất cơ sở dữ liệu qua SSH