Allow remote on mysql/mariadb
Mục tiêu
Với một số mô hình thiết lập hệ thống giữa các server không cùng dải Lan, thì để có thể connect database giữa các server khác dải, ta có thể sử dụng nhiều cách như kết nối VPN site to site, mở public database,... Bài viết này sẽ hướng dẫn mọi người cách để mở remote trên mysql/mariadb. Lưu ý việc mở public database tiềm ẩn khả năng bị tấn công rất cao. Chỉ nên mở public khi có đủ khả năng manage database hoặc secure database.
Chi tiết cấu hình thực hiện
- Hệ điều hành: Ubuntu 22.04
- Database: Mariadb 10.6.12
Các bước thực hiện
Đầu tiên ta cần cấu hình cho mariadb nhận cấu hình ip của server. Ta tiến hành mở file sau
Mysql:
Sửa giá trị bind-address từ localhost sang IP WAN hoặc 0.0.0.0
```
bind-address = 127.0.0.1
```
Lưu lại và thoát file ra, tiến hành restart mariadb để xác nhận cấu hình.
Kiểm tra lại kết quả bằng lệnh sau
Sau khi mở xong, cần phải tiến hành allow ip của máy client kết nối tới database thì mới có thể connect được. Ở bài viết này mình sẽ sử dụng máy cá nhân để kết nối với database thông qua phần mềm mysql workbench. Đầu tiên, ta thử thực hiện cấu hình và kết nối từ máy cá nhân đến database.
Như vậy ta có thể thể thấy IP của client chưa được allow trên database. Ta sẽ thực hiện allow IP này. Truy cập vào console của mariadb:
Thực hiện tạo 1 database hoặc 1 user bất kì nào đó
CREATE USER 'user1'@localhost IDENTIFIED BY 'passwordremote1';
Tiếp theo ta sẽ cấp quyền cho ip client là 27.72.98.102 có thể truy cập vào database với thông tin user bên trên
Lưu lại và thoát console database.
EXIT;
Thử connect tới database thông qua user pass vừa tạo trên máy cá nhân và thành công kết nối tới.
Lưu ý
Để cấp quyền cho toàn bộ database đều có thể access remote qua user1, bạn có thể chạy lệnh sau:
Để cấp quyền remote cho database bất kỳ cho toàn bộ client, bạn có thể chạy lệnh sau:
Để cấp quyền remote cho database bất kỳ cho các client thuộc 1 dải IP nhất định, bạn có thể chạy lệnh sau: