linux mysql主从同步配置
本文使用两台虚拟机进行演示,mysql为5.7。
192.168.211.128为主数据库
192.168.211.129为从数据库
主数据配置文件
修改/etc/my.cnf
文件,在[mysqld]下面添加以下信息
[mysqld]
#服务id,主从不能一致
server-id=1
#开启二进制日志
log-bin=mysql-bin
#设置需要同步的数据库
binlog-do-db=testjdbc
#不同步的数据库
#bin-ignore-db=mysql
保存后重启mysql服务
从数据库配置文件
修改/etc/my.cnf
文件,在[mysqld]下面添加以下信息
[mysqld]
server-id=2
log-bin=mysql-bin
#同步的数据库
replicate_wild_do_table=testjdbc.%
#屏蔽的数据库
#replicate_wild_ignore_table=mysql.%
保存后重启mysql服务
主数据库配置
-
进入mysql服务,创建一个主从同步的账号。
账号为masterslave,密码为123。账号密码随意设置
GRANT REPLICATION SLAVE ON *.* TO 'masterslave'@'%' IDENTIFIED BY '123';
FLUSH PRIVILEGES;
-
查看主数据库状态,记录File和Position信息提供给从数据库使用
SHOW MASTER STATUS;
File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Excuted_Gtid_Set |
---|---|---|---|---|
mysql-bin.000001 | 584 | testjdbc |
从数据库配置
-
进入mysql服务,停止同步
STOP SLAVE;
-
修改从库指向主库的信息
CHANGE MASTER TO
-- 主库的ip
MASTER_HOST='192.168.211.128',
MASTER_PORT=3306
-- 主库配置的同步账号
MASTER_USER='masterslave',
-- 主库配置的同步账号密码
MASTER_PASSWORD='123',
-- 主库中的File信息
MASTER_LOG_FILE='mysql-bin.000001',
-- 主库中的Position信息
MASTER_LOG_POS=584;
-
开启同步
START SLAVE;
-
查看同步状态
SHOW SLAVE STATUS;
如果Slave_IO_Running和Slave_SQL_Running都为YES,则说明同步成功
测试
修改主库中的信息,查看从库中是否同步修改了