mysql主从复制的步骤:
环境准备:
准备两台服务器,安装两个mariadb
主库是:192.168.12.96 mater
从库是:192.168.12.87 slave
主库的操作如下:
1.开启binlog功能,修改/etc/my.cnf
vim /etc/my.cnf #写入
[mysqld]
server-id=1 #指明主库的身份id为1
log-bin=mysqls14-bin #指明binlog的日志名
2.修改了配置文件,重启mariadb,使得binlog生效
systemctl restart mariadb
3.登录mysql,检查主库的状态
show master status;
4.创建一个用户,用于进行主从同步
create user 'kangchen'@'%' identified by 'kangchen666';
5.授予账号权限,授予一个从库的身份权限
grant replication slave on . to 'kangchen'@'%';
6.锁定mysql的表,防止数据写入
flush table with read lock;
7.主从同步,将从库与主库的数据,保持一致后,它俩都在同一个起跑线,然后解除锁表,一同写入数据,保证数据一致性
1.导出当前的数据,用于slave机器导入数据,保证在一个起始点
mysqldump -u root -p --all-databases > /data/db.dump
2.将此db.dump文件远程传输给 slave机器,用于导入
scp /data/db.dump root@192.168.12.87:/tmp/
3.登录slave从库,导入主库的数据信息
mysql > source /tmp/db.dump
4.查看主库和从库的信息,是否一致
8.查看主库的状态信息,binlog信息
show master status;
9.解锁表,开始主从同步
unlock tables;
从库的设置:
1.在/etc/my.cnf当中打开server-id
vim /etc/my.cnf
2.重启myariadb
3.查看slave机器的身份信息
show variables like 'server_id';
show variables like 'log_bin';
4.通过命令,开启主从同步技术
change master to master_host='192.168.12.96',
master_user='kangchen',
master_password='kangchen666',
master_log_file='mysqls14-bin.000001',
master_log_pos=671;
5.开启slave
start slave;
6.检查slave状态,检查两条参数,如果都是yes,即主从ok
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
7.此时可以在主库中写入数据,查看从库中是否生成了记录
主库:插入数据
从库:检查数据