MySQL主從複製配置(基於docker)
阿新 • • 發佈:2021-10-17
MySQL主從配置
版本
採用MySQL 5.7 進行配置,由於本地已經搭建了docker環境,故使用docker進行配置
MySQL服務配置
主服務和從服務my.cnf中新增binary log和server id 配置
主庫配置
[mysqld] skip-name-resolve user=root character-set-server=utf8 default_authentication_plugin=mysql_native_password sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION lower_case_table_names=1 #忽略表名大小寫 # 主從配置 server-id=1001 log-bin=mysql-bin
從庫配置
[mysqld] skip-name-resolve user=root character-set-server=utf8 default_authentication_plugin=mysql_native_password sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION lower_case_table_names=1 #忽略表名大小寫 # 主從配置 server-id=1002 log-bin=mysql-bin
注意server-id不能相同
啟動docker服務
docker 啟動指令碼
這裡新建了一個docker啟動指令碼,方便下次啟動:
docker run -p 3307:3306 --restart=always --privileged=true --name mysql57_01 -v /Users/wanghai/data/docker/mysql/mysql57_01/data:/var/lib/mysql -v /Users/wanghai/data/docker/mysql/mysql57_01/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7 docker run -p 3308:3306 --restart=always --privileged=true --name mysql57_02 -v /Users/wanghai/data/docker/mysql/mysql57_02/data:/var/lib/mysql -v /Users/wanghai/data/docker/mysql/mysql57_02/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7
注意區分埠號和配置檔案路徑
配置同步賬號
服務啟動後連線使用客戶端連線主庫,執行如下語句進行賬號建立並授權
# 建立從庫連線賬號
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
# 賬號授權
GRANT replication SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
# 重新整理許可權,使配置生效
FLUSH PRIVILEGES;
啟用主從同步
客戶端連線從庫服務,執行如下語句開啟同步
# 從庫開啟同步
CHANGE MASTER TO
MASTER_HOST='192.168.0.200',
MASTER_PORT=3307,
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 2891;
# 啟動複製
START SLAVE;
# 檢視同步從庫狀態
SHOW SLAVE STATUS;
具體引數根據自己的主庫配置來修改,其中master_log_file和master_log_pos是通過主庫執行
SHOW MASTER STATUS
獲取的
SHOW MASTER STATUS
測試配置結果
在主庫執行如下指令碼進行測試:
CREATE DATABASE dbtest;
USE dbtest;
CREATE TABLE t_table1 ( id LONG, NAME VARCHAR ( 100 ) );
INSERT INTO t_table1 VALUES ( 1, 'Test' );
檢視從庫同步結果
小結:
主從同步配置主要有三個步驟:
- 主從庫配置開啟bin log
- 主庫同步賬號配置
- 從庫啟動同步
本文來自部落格園,作者:WarmerSunny,轉載請註明原文連結:https://www.cnblogs.com/WarmerSunny/p/15416857.html