1. 程式人生 > 其它 >MySQL主從搭建筆記

MySQL主從搭建筆記

前言:環境介紹

作業系統:windows10,64,;

MySQL版本:解壓方式安裝的MySQL8.0.20

一、配置主從的mysql配置檔案

1.my.ini配置:

master:

#主從--master設定
server-id=1
log-bin=mysql-bin
binlog_format=row

master配置完後,重啟master的MySQL服務。

slave:

#主從--slave設定
server-id=2
log-bin=mysql-bin
binlog_format=row
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_slave_updates=on
relay_log_recovery=1

slave配置完後,重啟slave的MySQL服務。

二、在主庫建立主從複製的mysql賬號

CREATE USER mysqlsync@'%' IDENTIFIED  BY '123456';
GRANT REPLICATION SLAVE ON *.* TO mysqlsync@'%';

三、備份主庫指定資料庫

mysqldump  -P3306 -uroot -p123456  --single-transaction  --master-data=2 --databases test>d:/test.sql

--single-transaction:是為了得到一個一致性備份,在到處資料之前開啟一個事物,由資料庫保證單次匯出資料的一致性,此時針對InnoDB表的所有讀寫操作均不會被阻塞。

--master-data=2:讓備份出來的檔案中備份這一時刻的binlog檔案和position號

四、在從庫上恢復主庫的備份

source d:/test.sql;

五、啟動從庫服務

在從庫上執行:

CHANGE MASTER to master_host='127.0.0.1',master_user='mysqlsync',master_password='123456',master_log_file='binlog.000003',master_log_pos=2332;

注意,務必和備份檔案中兩個引數:MASTER_LOG_FILE、MASTER_LOG_POS 一致。

接著執行

start slave;
show slave status\G

確保以下兩項均為Yes,說明主從服務正常:

   Slave_IO_Running:Yes

   Slave_SQL_Running: Yes

六、測試

在主庫上建表,並插入資料

create database test;
use test;
CREATE TABLE `stu` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `code` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=In

INSERT INTO test.stu (code) VALUES
	 ('001'),
	 ('002');

到從庫看一下,是否有了?