说明:
主机器地址: 192.168.16.121
从机器地址: 192.168.16.120
Mysql版本:8.0.26
同步的数据库:mycat,需要在主从在提前创建好该数据
1、主节(Master)点配置
修改 Master 的配置文件/etc/my.cnf
vi /etc/my.cnf
在my.cnf文件中加入如下配置内容
#mysql服务唯一id,不同的mysql服务必须拥有全局唯一的id
server-id=1
#启动二进制日期
log-bin=mysql-bin
#设置不要复制的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information-schema
#设置需要复制的数据库
binlog-do-db=mycat
#设置binlog的格式
binlog_format=statement
2、从节点(Slave)配置
修改 Slave 的配置文件/etc/my.cnf
vi /etc/my.cnf
在my.cnf文件中加入如下配置内容
server-id=2
relay-log=mysql-relay
3、创建用于复制操作的用户
在主节点创建一个用户repl,用于从节点链接主节点时使用。
CREATE USER 'repl'@'192.168.16.121' IDENTIFIED WITH mysql_native_password BY 'Repl_master_1';
授权
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.16.121';
刷新授权表信息
flush privileges;
4、获取主节点当前binary log文件名和位置(position)
mysql> SHOW MASTER STATUS;
5、在从(Slave)节点上设置主节点参数,
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.16.120'',
MASTER_USER='repl',
MASTER_PASSWORD='Repl_master_1';',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156;
6、查看主从同步状态
mysql> show slave status\G;
7、开启主从同步
mysql> start slave;
8、再查看主从同步状态
mysql> show slave status\G;
看到这两个YES代表配置成功!!!!
ps:9. 基于GTID的并行复制实现同步
9.1 修改mysql配置文件,添加如下配置
gtid_mode=on
enforce-gtid-consistency=true
9.2 重启主从的服务
9.3 从库执行如下命令
change master to master_host='192.168.16.120',master_user='repl',master_password='Repl_master_1'
,master_auto_position=1;
针对生产环境存在已存在数据的环境配置主从需要做多做以下操作:
1、先进入主库,进行锁表,防止数据写入
mysql> flush tables with read lock;
注意:该处是锁定为只读状态,语句不区分大小写
2、进行数据备份
把数据备份到mysql.bak.sql文件
mysqldump -uroot -p -h192.168.16.120> mysql.bak.sql
3、把mysql备份文件传到从库机器,进行数据恢复
使用scp命令
[root@server01 mysql]# scp mysql.bak.sql root@1192.168.16.121:/tmp/
4.、停止从库的状态
mysql> stop slave;
5、然后到从库执行mysql命令,导入数据备份
mysql> source /tmp/mysql.bak.sql
6、设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.16.120',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='Repl_master_1',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156;
7、重新开启从同步
``
mysql> start slave;
8、查看同步状态
mysql> show slave status\G
``
看到
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
就配置成功!!!
9、 解除主数据库的锁表状态
mysql> unlock tables;
done