Remote MySQL

Các bước thực hiện kích hoạt Remote MySQL

1. Thay đổi cấu hình MySQL

Mặc định MySQL sẽ disable remote access, bạn cần enable lên bằng cách mở file cấu hình MySQL, ví dụ với đường dẫn /etc/mysql/my.cnf hoặc /etc/my.cnf

nano /etc/mysql/my.cnf

Comment những dòng sau:

#bind-address = 127.0.0.1
#skip-networking

Khởi động lại MySQL Server

service mysql restart

2. Gán quyền remote

Mặc định các account MySQL chỉ được gán quyền access locally mà thôi, để kết nối được từ bên ngoài, bạn cần thêm một bước là cập nhật privilege.

Trong ví dụ này, mình sẽ cho phép tài khoản root được phép login remote.

Đăng nhập MySQL

mysql -u root -p

Tiếp theo nhập lệnh sau:

GRANT SELECT ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION

Trong đó bạn cần thay đổi như sau

  • SELECT: Nhập vào quyền mà bạn muốn thiết lập cho User (Có thể thay thế bằng các từ sau: ALL, ALTER, CREATE VIEW, CREATE, DELETE, DROP, GRANT OPTION, INDEX, INSERT, SELECT, SHOW VIEW, TRIGGER, UPDATE). Tham khảo thêm tại đây :
    • ALL – Cho phép truy cập hoàn toàn
    • CREATE – Cho phép người dùng tạo cơ sở dữ liệu và bảng.
    • DELETE – Cho phép người dùng xóa các hàng khỏi bảng.
    • DROP – Cho phép người dùng xóa cơ sở dữ liệu và bảng.
    • EXECUTE – Cho phép người dùng thực thi các chương trình đã lưu trữ.
    • GRANT OPTION – Cho phép người dùng cấp hoặc xóa quyền của người dùng khác.
    • INSERT – Cho phép người dùng chèn hàng từ bảng.
    • SELECT – Cho phép người dùng chọn dữ liệu từ cơ sở dữ liệu.
    • SHOW DATABASES – Cho phép người dùng xem danh sách tất cả cơ sở dữ liệu.
    • UPDATE – Cho phép người dùng cập nhật các hàng trong bảng.
  • *.*: Nhập vào tên database và tên table mà bạn muốn chia sẻ.
  • USERNAME: Nhập vào tên đăng nhập của bạn muốn đặt
  • PASSWORD: Nhập vào mật khẩu của bạn muốn đặt
  • %: Nếu bạn cho phép tất cả các IP remote vào bạn để dấu %. Nếu bạn chỉ cho phép 1 IP bạn hãy thay bằng IP của bạn

Ví dụ:

Lệnh Remote MySQL

Sau khi hoàn tất bạn thoát ra và khởi động lại dịch vụ mysql/mariadb. Ở đây mình sử dụng MariaDB nên sẽ khởi động lại bằng lệnh systemctl restart mariadb

Kiểm tra kết nối SQL.

Ở đây mình sử dụng phần mêm HeidiSQL để kết nối, ngoài ra bạn có thể sử dụng phần mềm khác như workbench, navicat hoặc hàm php.

Bên dưới là ảnh thực tế kết nối và các thông tin bao gồm

  • Connection Name: Đặt tên bất kỳ
  • Hostname / IP: Nhập vào IP máy chủ
  • User Name: Nhập vào user Database
  • Edit Password: Nhập vào Mật khẩu User Database
  • Port: 3306 (Mặc định)
MySQL Remote Demo

Sau khi nhập hoàn tất bạn click vào Open. Nếu hiện thông báo Connection Successful là đã thành công

3. Mở port 3306

Đôi khi, bạn cần mở port 3306 thủ công để MySQL có thể lắng nghe kết nối. Sau bước 2 mà vẫn không connect được, bạn hãy sử dụng lệnh sau:

# iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

Nếu muốn chỉ chấp nhận kết nối từ IP 10.5.1.3, hãy sử dụng lệnh sau:

# iptables -I INPUT -i eth0 -s 10.5.1.3 -p tcp --destination-port 3306 -j ACCEPT

Kết luận về Remote MySQL

Như vậy mình vừa hướng dẫn bạn kích hoạt Remote MySQL Server Linux. Chúc các bạn có thể thực hiện thành công. Xem thêm các bài viết hữu ích về Linux tại đường dẫn sau:

Leave a Reply

Your email address will not be published. Required fields are marked *