mysql数据库级联同步配置步骤,本文以一台mysql数据库多实例3306、3307和3309为例进行配置,3306为主库,3307为从库,3309为子从库(多台单实例与一台多实例配置是一样的)
一.my.cnf文件配置
1.三个数据库实例修改my.cnf配置文件,主库3306和从库3307要打开log-bin,三个server-id不能一样
[root@mysql ~]# egrep"log-bin|server-id" /data/{3306,3307,3309}/my.cnf
/data/3306/my.cnf:log-bin =/data/3306/mysql-bin
/data/3306/my.cnf:server-id = 1
/data/3307/my.cnf:log-bin =/data/3307/mysql-bin
/data/3307/my.cnf:server-id = 3
/data/3307/my.cnf:#log-bin =/data/3309/mysql-bin
/data/3307/my.cnf:server-id = 5
2.从库3307的my.cnf文件的[mysqld]模块里添加一条内容
log-slave-updates
3.重启数据库3306、3307和3309
[root@mysql ~]#/data/3306/mysql stop
[root@mysql ~]#/data/3306/mysql start
[root@mysql ~]# /data/3307/mysqlstop
[root@mysql ~]# /data/3307/mysqlstart
[root@mysql ~]# /data/3309/mysqlstop
[root@mysql ~]# /data/3309/mysqlstart
4.进入主数据库3306,查询log_bin是否打开,server_id是多少,3307进行同样操作
[root@mysql ~]# mysql -uroot-p123456 -S /data/3306/mysql.sock
mysql> show variables like"log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.01 sec)
mysql> show variables like"server_id";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
5.在主库3306上创建一个专门用来同步数据库的用户
mysql> grant replicationslave on *.* to rep@'10.0.0.%' identified by '123456';
###*.*代表所有库和所有表
mysql> flush privileges;
mysql> select user,hostmysql.user;
mysql> show grants forrep@'10.0.0.%';
二.主库3306备份数据,导入从库3307
1.在主库3306上备份数据
[root@mysql ~]# mysqldump-uroot -p123456 -S /data/3306/mysql.sock -A --events -B -x --master-data=1|gzip>/opt/$(date +%F).sql.gz
-A:所有的库 -x:全局锁表
2.将数据导入从库3307
[root@mysql ~]# ls /opt
2017-07-03.sql.gz
[root@mysql ~]# cd /opt
[root@mysql opt]# gzip -d2017-07-03.sql.gz
[root@mysql opt]# ls
2017-07-03.sql
[root@mysql opt]# mysql -uroot-p123456 -S /data/3307/mysql.sock <2017-07-03.sql
3.从库3307连接主库3306
[root@mysql opt]# mysql -uroot-p123456 -S /data/3309/mysql.sock <
CHANGE MASTER TO
MASTER_HOST='10.0.0.20',
MASTER_PORT=3307,
MASTER_USER='rep',
MASTER_PASSWORD='123456';
EOF
[root@mysql opt]# mysql -uroot-p123456 -S /data/3307/mysql.sock -e "start slave"
三.从库3307备份数据,导入从库3309,步骤同上一样
四.测试
在主库3306上创建数据库,然后再登陆3307和3309查看是否正常同步,经测试已可以正常同步了^_^