赞
踩
一、【主库】配置
1、【主库】配置修改
######################################
# Binary Logging.
# log-bin 二进制日志
log-bin=mysql-bin
#只保留7天的二进制日志,以防磁盘被日志占满
expire-logs-days=7
#不备份的数据库
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performation_schema
binlog-ignore-db = sys
#需要做复制的数据库名,如果有多个,复制binlog-do-db即可
binlog-do-db = test
#######################################
2、创建及授权用户
创建slave用户用于从库同步复制,授予复制、同步访问的权限
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)
3、查看信息
3、1用户信息
SELECT * FROM mysql.user;
3、2 log_bin状态
3、3查看master状态
二、【从库】配置
1、从库配置
2、从库中配置主库信息
mysql>stop slave
mysql>CHANGE MASTER TO MASTER_HOST='localhost',MASTER_PORT=3306,MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000100',MASTER_LOG_POS=617;
3、查看同步状态
slave_io_status状态为空,忘记开启start slave ;开启后查看状态正常。
mysql>start slave
4、注意事项
4.1 I/O的作用是从master 3306端口上把它的binlog取过来(master修改的内容会写到自己的binlog等待slave更新),然后写到本地的relay-log,而SQL thread则是去读本地的relay-log,再把它转换成本Mysql所能理解的语句,于是同步就这样一步一步的完成,遇到数据同步失败原因之一排查思路就看这两个值是否为Yes。
start slave 之后,SLAVE_IO_RUNNING值为Yes,SLAVE_SQL_RUNNING为Yes。
4.2主库新建数据库test后新建t_user表,查看从库,未发现有新库及新表创建。查看show slave status;SLAVE_SQL_RUNNING为NO。原因:主从不同步数据库,所以同步之前保证从库手动创建test库,若在SLAVE_SQL_RUNNING为NO的状态下,在从库新建同步库test之后,在主库t_user中新增数据后,从库未同步数据。所以在做同步之前先将SLAVE_SQL_RUNNING改为Yes,可执行以下三个命令,可重复执行,在重复执行两次之后值才改为Yes,从库手动创建表t_user,主库在t_user新增数据后,从库t_user表中同步数据成功。
mysql>stop slave;
mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql>start slave;
5、同步测试
主库新建test库,从库会自动同步。
新建表、增删改查数据即可测试,若测试中数据未同步,使用命令show slave status;查看SLAVE_SQL_RUNNING是否为NO,并可查看为NO原因:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。