Giới Thiệu MySQL Database Replication Trên Docker

Bài viết này sẽ giới thiệu đến bạn kiến thức về MySQL Database Replication Trên Docker. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.

Giới thiệu về My SQL và các loại MySQL replication

Mysql là một trong những source database phổ biến nhất trên thế giớ. Dễ dàng để cài đặt và sử dụng. Hiện nay đã có rất nhiều CMS lớn sử dụng mysql như là database type mặc định như wordpress, mangeto.

Với những hệ thống lớn, hệ thống database có nhu cầu xử lý nhanh, ổn định và khả năng dự phòng. Do vậy các mô hình replication database đã được ra đời để thỏa mãn những nhu cầu trên.

Dưới đây là danh sách những loại mysql replication phổ biến nhất hiện tại:

  • Master-slave replication
  • Master-master replication
  • Group replication
  • Multi-master cluster (available for MariaDB, which is the fork of MySQL)

Giới thiệu master-slave replication

Trong bài viết này mình sẽ giới thiệu với các bạn kiểu replication cơ bản và dễ cài đặt nhất là master-slave replication. Với kiểu replication này, master sẽ thực hiện ở cả chế độ read và write, trong khi đó slave sẽ được sử dụng ở chế độ read-only. dữ liệu sẽ được đồng bộ từ server xuống các slave.

## Demo mô hình replication master-slave trên docker.

Cập nhật hệ thống và cài đặt docker engine

# yum update

# sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

# sudo yum install docker-ce-cli containerd.io docker-ce

Pull images mysql

# docker pull mysql

Điều chỉnh file cấu hình my.cnf

# docker run –rm -v /docker:/home/docker mysql cp /etc/mysql/my.cnf /home/docker

* /docker/my.cnf

bind-address = 0.0.0.0

server-id = 1

log_bin = mysql-bin

Note: server-id là id duy nhất cho mỗi máy trong group replication

Khởi động docker container master và slave

<master container>

# docker run -d –name mysql_master -h h_master \

> -e MYSQL_ROOT_HOST=”%” \

> -e MYSQL_ROOT_PASSWORD=”rootpassword” \

> -v /docker/h_master/config/my.cnf:/etc/mysql/my.cnf \

> -v /docker/h_master/data:/home/docker/data \

> mysql

<slave container>

# docker run -d –name mysql_slave -h h_slaver \

> -e MYSQL_ROOT_HOST=”%” \

> -e MYSQL_ROOT_PASSWORD=”rootpassword” \

> -v /docker/h_slave/config/my.cnf:/etc/mysql/my.cnf \

> -v /docker/h_slave/data:/home/docker/data \

> mysql

Điều chỉnh thông tin master và slave

Phía MASTER

Kết nối đến container.

# docker exec -it mysql_master bash

Kết nối đến mysql trong container sử dụng password đã định nhĩa khi tạo container

# mysql -u root -p

  1. Ghi nhận file log-bin và postion để replication.

mysql > show master status\G

  1. Tạo user dùng cho client kết nối replication, grant quyền replication.

mysql > create user repl@’%’ identified with mysql_native_password ‘replpassword’;

mysql > grant replication slave on *.* to repl@’%’;

mysql > flush privileges;

Phía SLAVE

Kết nối đến container.

# docker exec -it mysql_master bash

Kết nối đến mysql trong container sử dụng password đã định nhĩa khi tạo container

# mysql -u root -p

  1. Dừng slave (nếu đang chạy)

mysql > stop slave;

  1. Định nghĩa master và khởi động lại slave

mysql > change master to master_host=’10.10.10.11′, master_user=’repl’, master_password=’replpassword’, master_log_file=’mysql-bin.000004′, master_log_pos=17661521;

mysql > start slave;

  1. Kiểm tra lại thông tin

mysql > show slave status\G

MySQL Database Replication

THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST:

>> SERVERCOLOCATION – CDN

>> CLOUDVPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

>> SSL

Đánh giá bài viết
Was this article helpful?
Đánh giá
Đánh giá bài viết
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận