准备知识点:https://blog.51cto.com/xiaocao13140/2126128
主:192.168.1.106
从:192.168.1.107
主库操作start:
一、修改my.cnf(/etc/my.cnf)文件
[mysqld]
# 唯一标识符
server-id=106
# 开启binlog,记录ddl记录,从库根据这个去更新调整数据
log-bin=mysql-bin
# 参考上面的准备知识点
sync_binlog=0
# 不备份的数据库
binlog-ignore-db=information_schema,mysql,performance_schema,sys
二、重启主库
systemctl restart mysqld.service
三、登录主库mysql,查看状态
mysql> show master status \G
显示如下,其中:File和Position从库中会使用到。
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 154
Binlog_Do_DB:
Binlog_Ignore_DB: information_schema,mysql,performance_schema,sys
Executed_Gtid_Set:
主库操作end
从库操作start:
一、修改my.cnf(/etc/my.cnf)文件
[mysqld]
server-id=107
read_only=1
二、重启主库
systemctl restart mysqld.service
三、登录主库mysql,配置主库信息
# 停止备份
mysql> stop slave;
# 设置主库信息,都是什么ip地址账号和密码,还有master_log_file对应上面主库的File,master_log_pos对应上面主库的Position
mysql> change master to master_host='192.168.1.106',master_user='ywj',master_password='Root_12345678',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=154;
# 开始备份
mysql> start slave;
# 查询是否开启备份
mysql> show slave status \G;
当看到:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
说明开启复制了
从库操作end
---------到此配置完毕---------
---测试---
进入主库mysql创建数据库数据表
CREATE DATABASE `xxx`;
use `xxx`;
CREATE TABLE xxx (`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
insert into xxx(name) values('ywj');
操作完从库出现相同的数据库和表,说明OK了