目錄
原理介紹
環境說明
windows系統
兩個mysql,一主一從(同一臺機器安裝多個mysql方法)
master:127.0.0.1:3306 root 123456
slave:127.0.0.1:3307 root 123456
配置步驟
-
配置master庫的my.ini (linux下是my.cnf)
在[mysqld]下添加
log-bin=mysql-bin
server-id=1 (這個標識不能跟從庫的一樣)
-
創建同步賬戶(直接使用root也可以)
CREATE USER 'slave01'@'127.0.0.%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave01'@'127.0.0.%';
FLUSH PRIVILEGES;
-
查看主機狀態
Show master status;
-
配置從庫my.ini文件(linux下是my.cnf)
設置server-id=2 (不能個主庫一樣)
-
從庫執行監視主機日誌語句
change master to master_host='127.0.0.1',
master_user='slave01',
master_password='123456',
master_log_file='mysql-bin.000002', #這個要和上面的file對應
master_log_pos=430; #這個要和上面的Position對應
-
啓動從機複製,查看從機狀態
Start slave;
Show slave status\G;
實例測試
-
主庫創建一張表
CREATE TABLE `test_1` (
`id` varchar(64) NOT NULL COMMENT '編號',
`name` varchar(100) DEFAULT NULL COMMENT '名稱',
`sex` char(1) DEFAULT NULL COMMENT '性別',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='測試表';
查看從庫
-
主庫插入一條數據
INSERT INTO test_1 VALUES ('1111','張三','1');
查看從庫
異常問題
-
Slave_IO_Running: NO
由於從庫我是直接複製出來的,所以從庫的uuid跟主庫是一致的,因此會導致這個問題,只要修改從庫auto.cnf(C:\ProgramData\MySQL\MySQL Server 5.7-s1\Data中)的uuid後,重啓數據庫。