Hướng dẫn connect remote mysql

Hướng dẫn connect remote mysql

  • Thay đổi cấu hình MySQL
  • Phân quyền remote access MySQL
  • Mở port MySQL (3306) trên firewall
  • Kiểm tra kết nối từ xa

Hướng dẫn connect remote mysql

Nếu bạn muốn kích hoạt Remote access MySQL từ xa, thì có thể áp dụng theo các bước sau đây:

Thay đổi cấu hình MySQL

Mặc định MySQL sẽ disable tính năng remote từ xa, bạn cần enable lên bằng cách mở file cấu hình MySQL và điều chỉnh như sau:

vi /etc/my.cnf

Comment những dòng sau:

bind-address = 127.0.0.1
skip-networking

Thành

# bind-address = 127.0.0.1
# skip-networking

Khởi động lại MySQL

service mysql restart

Phân quyền remote access MySQL

Về mặc định thì MySQL chỉ được phân quyền access từ local mà thôi, bạn cần update thêm một vài bước để có thể kết nối từ bên ngoài:

Chạy lệnh bên dưới để cho phép truy cập từ tất cả các máy

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Hoặc chạy lệnh như bên dưới để cấp quyền truy cập từ IP cụ thể:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

Thay thế 1.2.3.4 bằng IP của mình. Có thể chạy lệnh trên nhiều lần để CẤP quyền truy cập từ nhiều IP.
Bạn có thể chỉ định USERNAME & PASSWORD riêng để truy cập từ xa.

Cuối cùng, bạn cần chạy lệnh sau:

mysql> FLUSH PRIVILEGES;
mysql> exit

Mở port MySQL (3306) trên firewall

Đôi khi bạn cần mở thủ công port MySQL để thiết lập kết nối, nếu bước 2 phía trên không thành công thì bạn có thể chạy lệnh sau:

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

Kiểm tra kết nối từ xa

Dùng Navicat (Windows) hoặc bạn có thể kiểm tra bằng lệnh sau trên Linux:

mysql -h HOST -u USERNAME -pPASSWORD

Thay “HOST” bằng IP của máy chủ bạn muốn truy cập, thay username và password tương ứng.

Nếu bạn đã truy cập vào được MySQL, bạn nên chạy lệnh “show databases;” để kiểm tra xem bạn đã có quyền access từ máy bạn hay chưa nhé! Chúc các bạn thành công

Bài viết này hướng dẫn các bạn cách khởi tạo user để có thể remote vào database trên server.

Các bạn lưu ý: Việc mở kết nối database từ xa qua Internet có nguy cơ bị hacker tấn công và dò mật khẩu trên port 3306, vì vậy hãy cân nhắc trước khi thực hiện mở port!

BƯỚC 1: Mở port 3306 trên tường lửa.
Trong khi SSH vào VPS các bạn chạy lệnh sau để mở port 3306:

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload

Các bạn có thể check xem port đã mở hay chưa bằng cách truy cập vào trang ping.eu -> port check -> Nhập IP của VPS, nhập port 3306, nhập captcha và check, nếu hiện ra port open thì là port đã được mở.
Hoặc bạn có thể dùng lệnh telnet để check port.

BƯỚC 2: Gán IP cho mysql

Sau đó các bạn sửa file /etc/my.cnf.d/server.cnf bằng lệnh nano /etc/my.cnf.d/server.cnf

Các bạn thêm dòng bind-address=0.0.0.0, nếu đã có rồi thì bạn sửa lại ip thành 0.0.0.0.

Hướng dẫn connect remote mysql

Sau đó các bạn restart lại mysql bằng lệnh service mysqld restart

BƯỚC 3: Tạo user remote database bằng phpMyAdmin

Đầu tiên các bạn đăng nhập bằng tài khoản root hoặc admin database ở link: /phpmyadmin

Sau đó bạn chọn DB bạn muốn remote -> chọn Privileges -> Add user account

Hướng dẫn connect remote mysql

Sau đó các bạn điền thông tin user mới và cấp quyền cho user đó trên database, sau đó bấm Go để tiếp tục.

Hướng dẫn connect remote mysql

Chỉnh sửa lại các đặc quyền của user cho database, sau đó bấm Go.

Lưu ý Với các quyền DELETEDROP sẽ cấp cho user có quyền xóa dữ liệu database, bạn cân nhắc khi cấp cho user quyền này.

Hướng dẫn connect remote mysql

Vậy là user đã tạo thành công, các bạn có thể kiểm tra user đã được tạo chưa bằng cách click lại vào DB -> Privileges.

Hướng dẫn connect remote mysql

Các bạn có thể kiểm tra kết nối bằng các phần mềm ví dụ như Navicat, HeidiSQL,..

Chúc các bạn thành công!