3.4 KiB
3.4 KiB
mysql8.0 主从配置
一、主库master配置
1、修改配置文件开启bin-log
#mysql8.0版本
vim /etc/mysql/mysql.conf.d/mysqld.cnf
#在mysqld.cnf最下面添加
#开启binlog 备份文件名称
log-bin = mysql-bin
#server-id在主从复制链路中服务id不能相同
server-id = 101
#不开启binlog的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=sys
binlog-ignore-db=performance_schema
binlog-ignore-db=mysql
#只对一下数据库输出binlog 可以写多个,不写则对所有未忽略的输出binlog
binlog-do-db = test
2、创建master用户,并且设置复制权限
#创建用户 用户名可以随意命名,访问地址设置从库ip
created user 'master'@'从库ip' identified with mysql_native_password by 'your password';
#赋予权限
grant replication slave on *.* to 'master'@'从库ip';
#刷新使刚才操作生效
flush privileges;
3、查看配置是否生效
#获取server_id 判断是否和配置文件中server_id相同
show variables like 'server_id';
#不相同则设置和配置文件相同
show variables like 'server_id';
#刷新后再次查看
flush privileges;
show variables like 'server_id';
#查看master配置 重启mysql服务生效 sudo service mysql resatrt;
show master status;
二、从库slave配置
1、修改配置文件
#server-id 不能和主库相同
server-id=102
#忽略下方所有表操作
replicate_wild_ignore_table= information_schema.%
replicate_wild_ignore_table= sys.%
replicate_wild_ignore_table= performance_schema.%
replicate_wild_ignore_table= mysql.%
2、设置主节点参数
mysql> CHANGE MASTER TO
MASTER_HOST='主服务器id', -- 主库(master)IP
MASTER_USER='master', -- 主库(master)用户
MASTER_PASSWORD='123456', -- 主库(master)用户密码
MASTER_LOG_FILE='mysql-bin.000001', -- 主库(master)地址
MASTER_LOG_POS=856; -- 主库(master)位置 在主库中输入 show master status; 可以查看binlog地址 和 position位置
3、查看配置是否生效
#获取server_id 判断是否和配置文件中server_id相同
show variables like 'server_id';
#不相同则设置和配置文件相同
show variables like 'server_id';
#刷新后再次查看
flush privileges;
show variables like 'server_id';
4、开启主从同步
#开启主从
start slave;
#查看主从同步状态
show slave status\G;
#状态如下则表示同步成功
#Slave_IO_State: Waiting for source to send event
#Master_Host: 192.168.3.50
#Master_User: master50
#Slave_IO_Running: Yes
#Slave_SQL_Running: Yes
三、注意
1、跨库操作不同补问题
我们在主库中添加了忽略库,这里在mysql中 使用 database.table 进行跨库操作就会拦截跨库的操作,所以建议不要使用跨库操作,建议使用use database 切换操作库或者去掉主库忽略配置;
use mysql;
delete test.user where id = 1
#因为所在库是mysql,mysql是我们的忽略库 他不会生成binlog 所以不会向从库同步
2、从库不向主库同步
对从库进行操作不会对主库更新,如果想要从库向主库同步,将住服务器当从服务器,从服务器当主服务器,在执行一遍流程
3、配置注意事项
(1) 主从服务器操作系统保持一致
(2) 主从数据库版本一致
(3) 主库开启bin-log,主库和从库的server_id 唯一