Replication Master-Slave là một kỹ thuật trong MySQL cho phép bạn sao chép dữ liệu từ một server (Master) sang một hoặc nhiều server khác (Slave). Việc thiết lập replication giúp cải thiện khả năng chịu lỗi, tăng cường hiệu suất đọc và dễ dàng quản lý dữ liệu. Bài viết này sẽ hướng dẫn bạn cách thiết lập replication Master-Slave một cách chi tiết và tỉ mỉ.
Replication Master-Slave là một phương pháp sao chép dữ liệu, trong đó máy chủ Master chứa dữ liệu chính và các máy chủ Slave sẽ nhận bản sao của dữ liệu này. Khi dữ liệu được ghi vào máy chủ Master, nó sẽ tự động được sao chép sang máy chủ Slave. Kỹ thuật này giúp đảm bảo dữ liệu luôn sẵn sàng và tăng cường khả năng phục hồi trong trường hợp máy chủ chính gặp sự cố.
Trước khi bắt đầu, bạn cần hai máy chủ MySQL:
Chỉnh sửa file cấu hình MySQL trên máy chủ Master:
Mở file cấu hình my.cnf
(hoặc my.ini
trên Windows) và thêm hoặc chỉnh sửa các dòng sau:
[mysqld] server-id=1 log_bin=mysql-bin
1
cho Master.Khởi động lại MySQL để áp dụng cấu hình:
sudo systemctl restart mysql
Tiếp theo, tạo người dùng cho replication:
Đăng nhập vào MySQL và thực hiện các lệnh sau:
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%'; FLUSH PRIVILEGES;
Lấy thông tin log để cấu hình trên máy chủ Slave:
Chạy lệnh sau:
SHOW MASTER STATUS;
Kết quả sẽ cung cấp cho bạn các thông tin như File
và Position
, cần thiết cho việc cấu hình trên Slave.
[mysqld] server-id=2
2
cho Slave).Khởi động lại MySQL trên máy chủ Slave:
sudo systemctl restart mysql
CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replica_user', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', -- thay bằng giá trị File từ SHOW MASTER STATUS MASTER_LOG_POS=12345; -- thay bằng giá trị Position từ SHOW MASTER STATUS
Cuối cùng, khởi động quá trình replication trên máy chủ Slave:
START SLAVE;
Kiểm tra trạng thái replication để đảm bảo mọi thứ hoạt động bình thường:
SHOW SLAVE STATUSG
Bạn sẽ thấy thông tin về trạng thái của Slave. Nếu mọi thứ đều ổn, bạn sẽ thấy Slave_IO_Running: Yes
và Slave_SQL_Running: Yes
.
Kết luận: Sau khi hoàn thành các bước trên, bạn đã thiết lập thành công replication Master-Slave trong MySQL. Việc này sẽ giúp bạn cải thiện hiệu suất đọc, tăng cường khả năng phục hồi và quản lý dữ liệu một cách hiệu quả hơn.