centos7 mysql主从同步

centos7 mysql主从同步

一、准备两个mysql服务并修改配置文件

1、总体配置思路

数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值,主从server-id不能一样
启用二进制日志
配置二进制日志格式(如果使用mycat2进行读写分离官网建议生产模式用row格式)
从库开启中继日志
需要同步的二进制数据库名
同步磁盘提交的次数(可不配,默认为0,当缓存满了就同步到磁盘)
不需要同步的二进制数据库

2、主库配置文件添加:

server-id=1
log-bin=mysql-bin
binlog_format=mixed
#sync-binlog=1
binlog-do-db=slavetest
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

3、从库配置文件添加:

server-id=2
log-bin=mysql-bin
binlog_format=mixed
relay-log=mysql-relay
#sync-binlog=1
replicate-do-db=slavetest
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys

二、为同步添加账号(一般不用root账号)

1、创建用户
create user 'username'@'localhost' identified by 'password';
2、为用户分配同步权限
grant replication slave on *.* to 'username'@'localhost';

三、进行主从同步配置

1、获取主库bin-log-file和bin-log-pos信息
show master status
记录File和Position的信息

2、从库配置主库信息

change master to
master_host='127.0.0.1',
master_user='slavetest',
master_password='slavetest',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=874

3、从库开启同步和查看同步状态
开始同步
start slave;
查看状态
show slave status\G

当Slave_IO_Running和Slave_SQL_Running都为yes的时候才说明同步正常。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

四、可能出现的情况

Slave_IO_Running为Connecting或者Slave_IO_State为Connecting to source时,导致的原因可能是mysql8的密码方式采用的跟之前的不同,需要这么来使用就可以了在从库进行授权位置的时候添加参数:get_master_public_key=1。

Slave_IO_State: Connecting to source
Slave_IO_Running: Connecting

即配置主库信息的时候添加(需要暂停同步):

change master to
master_host='127.0.0.1',
master_user='slavetest',
get_master_public_key=1,
master_password='slavetest',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=874;

然后重新开启同步。

你可能感兴趣的:(Linux服务器部署,mysql,数据库)