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:
Cấu hình MySQL
Bước 1: 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-networkingThành:
# bind-address = 127.0.0.1
# skip-networking
Khởi động lại MySQL
service mysql restart
Bước 2: 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
Cấu hình Firewall cho phép Remote access MySQL
Bước 3: 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
Bước 4: 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é!
Một vài thủ thuật hay về MySQL bạn có thể tham khảo:
- TIP #14: Áp dụng watch để theo dõi MySQL Query
- TIP #28: KIỂM TRA TABLE DÙNG MyISAM HAY InnoDB
- TIP #29: Chuyển MyISAM sang InnoDB
Chúc các bạn thành công