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=2log-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-- 主库的ipMASTER_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,则说明同步成功
测试
修改主库中的信息,查看从库中是否同步修改了
