Nhiều trang web , ứng dụng của một máy chủ và phần phụ trợ cơ sở dữ liệu được đặt trên cùng một máy. Tuy nhiên, theo thời gian thiết lập này sẽ khá cồng kềnh và khó mở rộng. Một giải pháp phổ biến là tách các chức năng này bằng cách thiết lập cơ sở dữ liệu từ xa, cho phép máy chủ và cơ sở dữ liệu phát triển theo tốc độ riêng của chúng trên máy của chính chúng.
Hướng dẫn:
Mặc định MySQL sẽ không hoạt động với thiết lập cở sở dữ liệu từ xa. vì nó không thể lắng nghe với các địa chỉ IP ngoài.
Để kích hoạt điều này cần mở file mysqld.cnf:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Và tìm đến dòng bind-address như hình dưới:
Sau đó chúng ta sửa dãy IP: 172.0.0.1 thành 0.0.0.0 để tham chiếu tới địa chỉ bên ngoài
Khởi động lại dịch vụ bằng lệnh sau:
sudo systemctl restart mysql
Tạo người dùng mới để truy cập từ xa vào MySQL:
Truy cập vào Mysql shell:
sudo mysql
Tạo tài khaonr người dùng mới để kết nối với máy chủ từ xa bằng lệnh:
CREATE USER 'Name'@'remote_server_ip' IDENTIFIED BY 'password';
Như hình ta đã tạo thành công
Tiếp theo cấp quyền cho tài khoản, cấp những quyền cần thiết :
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'remote_server_ip' WITH GRANT OPTION;
Sau đó chạy lệnh FLUSH PRIVILEGES :
FLUSH PRIVILEGES;
Thoát khỏi mysql shell bằng lệnh:
exit
Mở port 3306 và cho phép địa chỉ IP cụ thể để truy cập từ xa, bằng lệnh:
sudo ufw allow from remote_IP_address to any port 3306
Nếu muốn cho bất kì IP nào cũng có thể truy cập từ xa vào mysql thì ta chỉ cần mở port 3306:
sudo ufw allow 3306
Kiểm tra khả năng truy cập từ xa :
Bạn thử dùng một máy khác để truy cập vào mysql nếu thành công nó sẽ yêu cầu bạn nhập tài khoản của user đã tạo. Chạy lệnh sau để truy cập:
mysql -u user -h database_server_ip -p
Kết quả:
Phần kết:
Hướng dẫn trên giúp các bạn cho phép truy cập từ xa vào MySQL