Android

Cách cấu hình mysql master

Mysql: Master-Slave Replication | CentOS 7

Mysql: Master-Slave Replication | CentOS 7

Mục lục:

Anonim

Sao chép MySQL là một quá trình cho phép bạn tự động sao chép dữ liệu từ một máy chủ cơ sở dữ liệu sang 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.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách thiết lập bản sao MySQL Master / Slave với một máy chủ chính và một máy chủ nô lệ trên CentOS 7. 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

Trong ví dụ này, chúng tôi giả định rằng bạn có hai máy chủ đang chạy CentOS 7, có thể liên lạc 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.59 Slave IP: 192.168.121.14

Cài đặt MySQL

Mặc định Các kho lưu trữ CentOS 7 không bao gồm các gói MySQL nên chúng tôi sẽ cài đặt MySQL từ Kho lưu trữ Yum chính thức của chúng. Để tránh mọi sự cố, chúng tôi sẽ cài đặt cùng một phiên bản MySQL 5.7 trên cả hai máy chủ.

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

sudo yum localinstall sudo yum install mysql-community-server sudo yum localinstall sudo yum install mysql-community-server

Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ MySQL và cho phép nó tự động khởi động khi khởi động với:

sudo systemctl enable mysqld sudo systemctl start mysqld

Khi máy chủ MySQL khởi động lần đầu tiên, mật khẩu tạm thời được tạo cho người dùng root MySQL. Để tìm mật khẩu, sử dụng lệnh grep sau:

sudo grep 'temporary password' /var/log/mysqld.log

Chạy lệnh mysql_secure_installation để đặt mật khẩu gốc mới của bạn và cải thiện tính bảo mật của phiên bản MySQL:

mysql_secure_installation

Nhập mật khẩu gốc tạm thời và trả lời Y (có) cho tất cả các câu hỏi.

Mật khẩu mới cần dài ít nhất 8 ký tự và chứa ít nhất một chữ cái viết hoa, một chữ cái viết thường, một số và một ký tự đặc biệt.

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

Đầu tiên, chúng tôi sẽ cấu hình máy chủ MySQL chính và thực hiện các thay đổi sau:

  • Đặt máy chủ MySQL để nghe trên IP riêng. Đặ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à thêm các dòng sau vào phần phần:

sudo nano /etc/my.cnf thạc sĩ: /etc/my.cnf

bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin

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 mysqld

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:

mysql -uroot -p

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.14' IDENTIFIED BY 'strong_password';

GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14'; 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: 1427 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í '1427'. 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/my.cnf nô lệ: /etc/my.cnf

bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin

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

sudo systemctl restart mysqld

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:

mysql -uroot -p

Đầ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.59', MASTER_USER='replica', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1427;

Đả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:

mysql -uroot -p

CREATE DATABASE replicatest;

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

mysql -uroot -p

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 trên CentOS 7.

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

centos mysql mariadb