Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thiết lập MySQL Replication trong RHEL, Rocky và AlmaLinux

Sao chép dữ liệu là quá trình sao chép dữ liệu của bạn trên nhiều máy chủ để cải thiện tính khả dụng của dữ liệu và nâng cao độ tin cậy và hiệu suất của ứng dụng. Trong MySQL sao chép, dữ liệu được sao chép từ cơ sở dữ liệu từ máy chủ chính đến các nút khác trong thời gian thực để đảm bảo tính nhất quán của dữ liệu và cũng để cung cấp sao lưu và dự phòng.

Trong hướng dẫn này, chúng tôi trình bày cách bạn có thể thiết lập MySQL ( Chủ nô ) sao chép trong các bản phân phối dựa trên RHEL chẳng hạn như CentOS , Fedora , Rocky Linux, AlmaLinux .

Thiết lập bản sao MySQL

Vì vậy, đây là MySQL của chúng tôi thiết lập phòng thí nghiệm nhân bản.

 MySQL Master - 10.128.0.14MySQL Slave - 10.128.15.211 

Hãy bắt đầu…

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

Chúng tôi sẽ bắt đầu bằng cách cài đặt MySQL cơ sở dữ liệu trên cả cái chính nô lệ máy chủ.

 $ sudo dnf install @mysql 

Sau khi cài đặt xong, hãy chuẩn bị khởi động máy chủ cơ sở dữ liệu.

 $ sudo systemctl start mysqld 

Sau đó cho phép nó bắt đầu khởi động hệ thống hoặc khi khởi động lại.

 $ sudo systemctl kích hoạt mysqld 

Sau đó, xác nhận rằng MySQL máy chủ cơ sở dữ liệu đang chạy như được hiển thị:

 $ sudo systemctl status mysqld 

Bước 2:Bảo mật MySQL trên Máy chủ Master và Slave

Bước tiếp theo là bảo mật MySQL cơ sở dữ liệu trên cả cái chính nô lệ may chủ. Điều này là do cài đặt mặc định không an toàn và có một số lỗ hổng có thể dễ dàng bị tin tặc khai thác.

Vì vậy, để làm cứng MySQL, hãy chạy lệnh:

 $ sudo mysql_secure_installation 

Trước tiên, bạn sẽ được yêu cầu đặt MySQL mật khẩu gốc. Đảm bảo cung cấp mật khẩu gốc mạnh, tốt hơn là có nhiều hơn 8 ký tự là sự kết hợp của các ký tự viết hoa, viết thường, đặc biệt và số.

Đối với các lời nhắc còn lại, hãy nhập 'Y' để điều chỉnh máy chủ cơ sở dữ liệu theo các cài đặt được đề xuất.

Sau khi bạn hoàn tất cài đặt và củng cố MySQL trên nút chính và nút phụ, việc tiếp theo là định cấu hình nút chính.

Bước 3:Định cấu hình Nút chính (Máy chủ)

Bước tiếp theo là định cấu hình Chính và cấp cho nô lệ nút truy cập vào nó. Trước tiên, chúng tôi cần chỉnh sửa mysql-server.cnf tệp cấu hình.

 $ sudo vim /etc/my.cnf.d/mysql-server.cnf 

Thêm các dòng sau vào [mysqld] phần.

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

Sau khi hoàn tất, hãy lưu các thay đổi và thoát. Sau đó khởi động lại MySQL máy chủ.

 $ sudo sysemctl khởi động lại mysqld 

Tiếp theo, đăng nhập vào MySQL vỏ.

 $ sudo mysql -u root -p 

Thực thi các lệnh sau để tạo người dùng cơ sở dữ liệu sẽ được sử dụng để liên kết chính và phụ để sao chép.

 mysql> TẠO NGƯỜI DÙNG 'replica'@'10.128.15.211' ĐƯỢC XÁC NHẬN BỞI '[email protected]'; mysql> BẬT LƯỢT THAY THẾ *. * ĐẾN 'replica'@'10.128.15.211'; 

Áp dụng các thay đổi và thoát khỏi MySQL máy chủ.

 mysql> FLUSH PRIVILEGES; mysql> EXIT; 

Xác minh trạng thái của trang cái.

 mysql> HIỂN THỊ TRẠNG THÁI CHÍNH \ G 

Ghi lại Tên tệp và Vị trí. Bạn sẽ cần điều này sau này khi thiết lập nô lệ để nhân rộng. Trong trường hợp của chúng tôi, chúng tôi có tên tệp là mysql-bin.000001 và Vị trí 1232 .

Bước 4:Định cấu hình Slave Node (Máy chủ)

Bây giờ, quay lại nút Slave. Một lần nữa, hãy chỉnh sửa mysql-server.cnf tệp cấu hình.

 $ sudo vim /etc/my.cnf.d/mysql-server.cnf 

Như trước đây, hãy dán những dòng này dưới [mysqld] tiết diện. Thay đổi địa chỉ IP để tương ứng với IP của nô lệ. Ngoài ra, chỉ định một id máy chủ khác . Ở đây, chúng tôi đã gán giá trị của nó là 2 .

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

Lưu các thay đổi và thoát khỏi tệp. Sau đó khởi động lại máy chủ cơ sở dữ liệu.

 $ sudo systemctl khởi động lại mysqld 

Để định cấu hình Slave để sao chép từ nút Chính, đăng nhập vào máy chủ MySQL của Slave.

 $ sudo mysql -u root -p 

Đầu tiên và quan trọng nhất, hãy dừng các chuỗi sao chép:

 mysql> DỪNG LƯỢT; 

Sau đó, thực hiện lệnh sau để định cấu hình nút phụ để sao chép cơ sở dữ liệu từ chính.

 mysql> ĐỔI MASTER TO MASTER_HOST ='10 .128.0.14 ', MASTER_USER =' replica ', MASTER_PASSWORD='[email protected]', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS =1232; 
 Lưu ý rằng  MASTER_LOG_FILE  MASTER_LOG_POS  cờ tương ứng với tệp và  Vị trí  giá trị từ  Chính  ở cuối Bước 1. 

MASTER_HOST , MASTER_USER, MASTER_PASSWORD tương ứng với địa chỉ IP Chính, người dùng bản sao và mật khẩu của người dùng bản sao tương ứng.

Sau đó, bắt đầu các chuỗi sao chép nô lệ:

 mysql> BẮT ĐẦU LƯỢT; 

Bước 4:Kiểm tra bản sao MySQL Master-Slave

Bây giờ, để kiểm tra xem bản sao giữa nút chính và nút phụ có hoạt động hay không, hãy đăng nhập vào máy chủ cơ sở dữ liệu MySQL trên nút chính:

 $ sudo mysql -u root -p 

Tạo cơ sở dữ liệu thử nghiệm. Tại đây, cơ sở dữ liệu thử nghiệm của chúng tôi được gọi là replication_db .

 mysql> TẠO CƠ SỞ DỮ LIỆU replication_db; 
 Xác minh sự tồn tại của cơ sở dữ liệu. 
 mysql> HIỂN THỊ DỮ LIỆU; 

Bây giờ, hãy chuyển đến nút nô lệ, đăng nhập vào máy chủ MySQL và xác nhận rằng replication_db cơ sở dữ liệu hiện tại. Từ kết quả bên dưới, chúng ta có thể thấy rằng cơ sở dữ liệu hiện diện. Đây là xác nhận rằng quá trình sao chép đã diễn ra từ nút chính đến nút phụ.

 mysql> HIỂN THỊ DỮ LIỆU; 

Vậy là xong, chúng tôi đã chứng minh thành công cách bạn có thể thiết lập MySQL mô hình sao chép master-slave có thể sao chép cơ sở dữ liệu từ nút chính sang nút phụ.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật một bảng MySQL với các giá trị từ một bảng khác

  2. Không thể kết nối với máy chủ MySQL lỗi 111

  3. CHỌN * NƠI KHÔNG TỒN TẠI

  4. Vị trí của tệp my.cnf trên macOS

  5. Chèn hàng loạt với SQLAlchemy ORM