Android

Cách cấu hình mysql master

Configuring MySQL Master Slave Replication on Ubuntu 16.04

Configuring MySQL Master Slave Replication on Ubuntu 16.04

Mục lục:

Anonim

Sao chép MySQL là một quá trình cho phép dữ liệu từ một máy chủ cơ sở dữ liệu được tự động sao chép vào một hoặc nhiều máy chủ.

MySQL hỗ trợ một số cấu trúc liên kết sao chép với cấu trúc liên kết Master / Slave là một trong những cấu trúc liên kết nổi tiếng nhất trong đó một máy chủ cơ sở dữ liệu đóng vai trò là chủ, trong khi một hoặc nhiều máy chủ đóng vai trò là nô lệ. Theo mặc định, bản sao không đồng bộ trong đó chủ gửi các sự kiện mô tả sửa đổi cơ sở dữ liệu tới nhật ký nhị phân của nó và nô lệ yêu cầu các sự kiện khi chúng sẵn sàng.

Hướng dẫn này bao gồm một ví dụ cơ bản về sao chép MySQL Master / Slave với một máy chủ chính và một máy chủ nô lệ trên Ubuntu 18.04. Các bước tương tự áp dụng cho MariaDB.

Kiểu cấu trúc liên kết sao chép này phù hợp nhất để triển khai các bản sao đọc để nhân rộng đọc, sao lưu cơ sở dữ liệu trực tiếp để khắc phục thảm họa và cho các công việc phân tích.

Điều kiện tiên quyết

Ví dụ này giả sử bạn có hai máy chủ chạy Ubuntu 18.04, có thể giao tiếp với nhau qua mạng riêng. Nếu nhà cung cấp dịch vụ lưu trữ của bạn không cung cấp địa chỉ IP riêng, bạn có thể sử dụng địa chỉ IP công cộng và định cấu hình tường lửa của mình để chỉ cho phép lưu lượng truy cập trên cổng 3306 từ các nguồn đáng tin cậy.

Các máy chủ trong ví dụ này có các IP sau:

Master IP: 192.168.121.190 Slave IP: 192.168.121.236

Cài đặt MySQL

Mặc định Các kho lưu trữ Ubuntu 18.04 bao gồm phiên bản MySQL 5.7. Để tránh mọi vấn đề, tốt nhất là cài đặt cùng một phiên bản MySQL trên cả hai máy chủ.

Cài đặt MySQL trên máy chủ Master:

sudo apt-get update sudo apt-get install mysql-server

Cài đặt MySQL trên máy chủ Slave bằng các lệnh tương tự:

sudo apt-get update sudo apt-get install mysql-server

Cấu hình máy chủ chính

Bước đầu tiên là cấu hình máy chủ MySQL chính. Chúng tôi sẽ thực hiện các thay đổi sau:

  • Đặt máy chủ MySQL để nghe trên IP riêng. Hãy đặt một ID máy chủ duy nhất.. Có thể ghi nhật ký nhị phân

Để làm như vậy, hãy mở tệp cấu hình MySQL và bỏ ghi chú hoặc đặt như sau:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf chủ: /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.121.190 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

Sau khi hoàn tất, hãy khởi động lại dịch vụ MySQL để các thay đổi có hiệu lực:

sudo systemctl restart mysql

Bước tiếp theo là tạo một người dùng nhân rộng mới. Đăng nhập vào máy chủ MySQL với tư cách là người dùng root bằng cách gõ:

sudo mysql

Từ bên trong lời nhắc của MySQL, hãy chạy các truy vấn SQL sau đây sẽ tạo người dùng replica và cấp đặc quyền REPLICATION SLAVE cho người dùng:

CREATE USER 'replica'@'192.168.121.236' IDENTIFIED BY 'replica_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236'; Hãy chắc chắn rằng bạn thay đổi IP bằng địa chỉ IP nô lệ của bạn. Bạn có thể đặt tên người dùng như bạn muốn.

Trong khi vẫn ở trong dấu nhắc MySQL, hãy thực hiện lệnh sau sẽ in tên tệp và vị trí nhị phân.

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

Lưu ý tên tệp, 'mysql-bin.000001' và Vị trí '629'. Bạn sẽ cần những giá trị này khi cấu hình máy chủ nô lệ. Những giá trị này có thể sẽ khác nhau trên máy chủ của bạn.

Cấu hình máy chủ nô lệ

Giống như đối với máy chủ chính ở trên, chúng tôi sẽ thực hiện các thay đổi sau đối với máy chủ nô lệ:

  • Đặt máy chủ MySQL để nghe trên IPSet riêng một máy chủ duy nhất có thể ghi nhật ký nhị phân

Mở tệp cấu hình MySQL và chỉnh sửa các dòng sau:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf nô lệ: /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address = 192.168.121.236 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

Khởi động lại dịch vụ MySQL:

sudo systemctl restart mysql

Bước tiếp theo là cấu hình các tham số mà máy chủ nô lệ sẽ sử dụng để kết nối với máy chủ chính. Đăng nhập vào vỏ MySQL:

sudo mysql

Đầu tiên, dừng các chủ đề nô lệ:

STOP SLAVE;

Chạy truy vấn sau đây sẽ thiết lập nô lệ để sao chép chủ:

CHANGE MASTER TO MASTER_HOST='192.168.121.190', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=629;

Đảm bảo bạn đang sử dụng đúng địa chỉ IP, tên người dùng và mật khẩu. Tên và vị trí tệp nhật ký phải giống với các giá trị bạn nhận được từ máy chủ chính.

Sau khi hoàn thành, bắt đầu các chủ đề nô lệ.

START SLAVE;

Kiểm tra cấu hình

Tại thời điểm này, bạn nên có một thiết lập sao chép Master / Slave hoạt động.

Để xác minh rằng mọi thứ hoạt động như mong đợi, chúng tôi sẽ tạo cơ sở dữ liệu mới trên máy chủ chính:

sudo mysql

CREATE DATABASE replicatest;

Đăng nhập vào shell MySQL nô lệ:

sudo mysql

Chạy lệnh sau để liệt kê tất cả các cơ sở dữ liệu:

SHOW DATABASES;

Bạn sẽ nhận thấy rằng cơ sở dữ liệu bạn đã tạo trên máy chủ chính được sao chép trên Slave:

+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)

Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn tạo bản sao MySQL Master / Slave.

Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.

ubfox mysql mariadb