Blog

Cấu Hình Master-Slave Replication MySQL Trên Linux Chi Tiết

MySQL Master-Slave Replication là một kỹ thuật rất quan trọng trong việc tối ưu hóa hệ thống cơ sở dữ liệu MySQL. Nó giúp tăng tính sẵn sàng (availability), khả năng mở rộng (scalability) và bảo mật (security) cho hệ thống. Cấu hình Master-Slave Replication MySQL cho phép bạn sao chép dữ liệu từ một máy chủ (Master) đến một hoặc nhiều máy chủ khác (Slave). Điều này rất hữu ích trong các tình huống cần phân phối tải, sao lưu dữ liệu hoặc khôi phục sau thảm họa.

Trong bài viết này, Gdata sẽ hướng dẫn bạn thực hiện cấu hình Master-Slave Replication cho MySQL trên hệ điều hành Linux. Cùng tìm hiểu bài viết ngay thôi nào!

Hướng dẫn cấu hình Master-Slave Replication

 

Giới thiệu về Master-Slave Replication

Trong MySQL, Master-Slave Replication là mô hình sao chép dữ liệu theo cơ chế đồng bộ một chiều. Cụ thể, một máy chủ MySQL sẽ hoạt động như Master và các máy chủ MySQL khác sẽ là Slave. Mọi thay đổi dữ liệu trên Master sẽ tự động được sao chép đến Slave. Mô hình này giúp tăng cường khả năng chịu tải và bảo mật cho hệ thống.

– Master: Chứa cơ sở dữ liệu chính và xử lý mọi truy vấn ghi (INSERT, UPDATE, DELETE).

– Slave: Sao chép và lưu trữ bản sao dữ liệu từ Master, xử lý các truy vấn đọc (SELECT).

Yêu cầu trước khi cấu hình Master-Slave Replication

Trước khi bắt đầu cấu hình Master-Slave Replication, bạn cần chuẩn bị một số điều kiện sau:

  • Hai máy chủ MySQL hoạt động trên hệ điều hành Linux.
  • Cả hai máy chủ đều có địa chỉ IP cố định.
  • Quản trị viên có quyền truy cập root hoặc quyền quản lý MySQL trên cả Master và Slave.
  • Phải đảm bảo rằng các cổng cần thiết giữa Master và Slave được mở (thường là cổng 3306 cho MySQL).

Cài đặt MySQL trước khi cấu hình Master-Slave Replication

Trước tiên, bạn cần cài đặt MySQL trên cả Master và Slave. Nếu bạn chưa cài MySQL, bạn có thể thực hiện theo các bước sau:

Bước 1: Cài đặt MySQL trên máy chủ Master

1. Cập nhật hệ thống:

sudo apt update

2. Cài đặt MySQL Server:

sudo apt install mysql-server

3. Khởi động dịch vụ MySQL:

sudo systemctl start mysql

4. Kiểm tra trạng thái MySQL:

sudo systemctl status mysql

5. Đảm bảo MySQL tự động khởi động khi reboot:

sudo systemctl enable mysql

Bước 2: Cài đặt MySQL trên máy chủ Slave

Lặp lại các bước trên để cài đặt MySQL trên máy chủ Slave.

Bước 3: Cấu hình máy chủ Master

1. Sửa file cấu hình MySQL

Mở file cấu hình my.cnf để cấu hình Master.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

2. Thêm hoặc sửa các dòng cấu hình sau:

Kích hoạt binary logging (logs ghi lại tất cả các thay đổi dữ liệu):

log_bin = /var/log/mysql/mysql-bin.log
server_id = 1
bind-address = 0.0.0.0
binlog_do_db = <Tên cơ sở dữ liệu cần sao chép>
Trong đó: 
    • log_bin: Bật chế độ ghi log vào file binary.
    • server_id: Mã định danh duy nhất của máy chủ, phải khác biệt giữa Master và Slave.
    • bind-address: Chỉ định MySQL lắng nghe trên mọi địa chỉ IP.
    • binlog_do_db: Chỉ sao chép cơ sở dữ liệu này từ Master.

3. Khởi động lại MySQL

Sau khi sửa file cấu hình, khởi động lại MySQL để áp dụng các thay đổi:

sudo systemctl restart mysql

4. Tạo tài khoản replication

Để Slave có thể sao chép dữ liệu từ Master, bạn cần tạo tài khoản replication.

    • Đăng nhập vào MySQL:
      sudo mysql -u root -p
    • Tạo tài khoản replication:
      CREATE USER 'replication_user'@'%' IDENTIFIED BY 'your_password';
      GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
      FLUSH PRIVILEGES;
    • Kiểm tra trạng thái của Master:
      SHOW MASTER STATUS;

      Lưu lại giá trị của FilePosition, bạn sẽ cần chúng khi cấu hình Slave.

Bước 4: Cấu hình máy chủ Slave

1. Sửa file cấu hình MySQL trên Slave

Mở file cấu hình my.cnf và thay đổi một số tham số.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

2. Cập nhật các dòng cấu hình sau:

Thêm dòng sau để chỉ định server_id cho Slave:

server_id = 2
bind-address = 0.0.0.0

Lưu ý: server_id của Slave phải khác Master.

3. Khởi động lại MySQL trên Slave:

sudo systemctl restart mysql

Bước 5: Thiết lập kết nối tới Master

1. Đăng nhập vào MySQL trên Slave:

sudo mysql -u root -p

2. Thiết lập Slave sao chép từ Master:

CHANGE MASTER TO
MASTER_HOST = 'IP_Master',
MASTER_USER = 'replication_user',
MASTER_PASSWORD = 'your_password',
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 154;

Thay IP_Master, your_password, mysql-bin.000001, và 154 với các giá trị bạn đã lưu từ bước trước khi cấu hình Master.

Bước 6: Khởi động quá trình sao chép

1. Khởi động quá sao chép bằng lệnh:

START SLAVE;

2. Kiểm tra trạng thái Slave:

SHOW SLAVE STATUS\G

Nếu tất cả các trường Slave_IO_RunningSlave_SQL_Running đều có giá trị Yes, việc sao chép đã thành công.

Bước 7: Kiểm tra hoạt động Replication

1. Kiểm tra dữ liệu trên Slave

Bạn có thể kiểm tra xem dữ liệu có được sao chép từ Master sang Slave hay không bằng cách truy vấn dữ liệu trên Slave.

SELECT * FROM <Tên cơ sở dữ liệu>;

2. Kiểm tra trạng thái sao chép

SHOW SLAVE STATUS\G

Lưu ý: Các giá trị Slave_IO_RunningSlave_SQL_Running phải là Yes để đảm bảo rằng quá trình replication đang hoạt động bình thường.

Lợi ích khi cấu hình Master-Slave Replication

Vậy tại sao nên thực hiện cấu hình Master-Slave Replication? Dưới đây là những lợi ích tiêu biểu:

  • Tăng cường khả năng chịu tải: Việc phân chia các truy vấn đọc giữa các Slave giúp giảm tải cho Master.
  • Sao lưu và khôi phục dễ dàng hơn: Slave có thể hoạt động như một bản sao lưu dữ liệu, giảm thiểu rủi ro mất dữ liệu.
  • Tính sẵn sàng cao: Nếu Master gặp sự cố, bạn có thể chuyển đổi một Slave thành Master để tiếp tục cung cấp dịch vụ.

Lưu ý khi cấu hình Master-Slave Replication

Bạn cũng cần chú ỹ những việc sau khi thực hiện cấu hình Master-Slave Replication:

  • Cài đặt mật khẩu: Cần sử dụng mật khẩu mạnh cho tài khoản replication.
  • Băng thông mạng: Việc sao chép dữ liệu giữa các máy chủ sẽ yêu cầu một kết nối mạng ổn định và đủ băng thông.
  • Giám sát quá trình replication: Theo dõi trạng thái sao chép thường xuyên để phát hiện các lỗi kịp thời.

Kết luận

Cấu hình Master-Slave Replication MySQL trên Linux không phải là một quá trình phức tạp. Tuy nhiên, bạn cần sự cẩn thận và chính xác trong từng bước cấu hình. Bằng cách thực hiện replication, bạn không chỉ tối ưu hóa hiệu suất và khả năng mở rộng cho hệ thống MySQL; mà bạn còn tạo ra một chiến lược sao lưu và khôi phục dữ liệu hiệu quả. Hãy chắc chắn rằng bạn luôn theo dõi trạng thái của hệ thống để đảm bảo rằng quá trình replication đang hoạt động trơn tru.

Xem thêm: Cách sử dụng VPS Linux hiệu quả [2025]

Thông tin liên hệ Gdata

Nếu bạn còn có bất kỳ thắc mắc nào khi cấu hình Master-Slave Replication. Đừng ngần ngại mà hãy liên hệ ngay với đội ngũ nhân sự của Gdata để nhận được hỗ trợ nhanh chóng và chính xác nhất!

Hotline: 0904 299 668

Tổng đài: 1800 4814 – Phím 2

Email: lienhe@gdata.com.vn

Website: www.gdata.com.vn

Facebook: https://www.facebook.com/gdata.com.vn 

CÔNG TY CP DỮ LIỆU TOÀN CẦU

Địa chỉ: Tầng 03 Tòa Lạc Hồng/ 27 Lê Văn Lương, Thanh Xuân, Hà Nội

GDATA – Thuê VPS toàn diện cho doanh nghiệp! 

  • 07/02/2025
  • 1995 Lượt xem
avatar_author

Tác giả: Cao Thùy Dung

Tôi là Cao Thùy Dung, với hơn 4 năm kinh nghiệm phát triển nội dung số. Trong đó, với hơn 1 năm kinh nghiệm trong lĩnh vực công nghệ thông tin, đặc biệt chuyên sâu về các chủ đề Cloud VPS, Cloud Server, bảo mật mạng, chuyển đổi số và hạ tầng IT.Tôi mong muốn các bài viết khoa học – dễ hiểu – thực tiễn sẽ giúp bạn đọc ở mọi trình độ dễ dàng tiếp cận kiến thức kỹ thuật phức tạp.

  1. Đăng ký dùng thử
  2. Zalo chat
  3. Gọi miễn phí