以下操作查看主从binlog模式mysql>showslavestatus\G******************************************************************************1行*************************Slave_IO_State:等待主机发送事件Master_Host:192.168.22.171Master_User:repMaster_Port:3306Connect_Retry:60Master_Log_File:master-bin.000004Read_Master_Log_Pos:463Relay_Log_File:s1.000011Relay_Log_Pos:630Relay_Master_Log_File:master-bin.000004Slave_IO_Running:YesSlave_SQL_Running:YesReplicate_Do_DB:Replicate_Ignore_DB:test如果配置不存在,如果从库状态不同步也会显示此项文件指定了主从中不存在的库library,然后在master库中创建这个library,测试数据是否同步到master库。创建数据库mysql>createdatabasetest;QueryOK,1rowaffected(0.06sec)mysql>showdatabases;+--------------------+|数据库|+--------------------+|信息架构||数据库||性能模式||系统||test|+--------------------+5rowsinset(0.01sec)viewmysql>showdatabasesfromthelibrary;+--------------------+|数据库|+--------------------+|信息架构||数据库||性能模式||sys|+----------------+5rowsinset(0.01sec)结论:发现建库的动作还没有被从库同步过来over2:测试主从服务器数据库的数据同步状态。目前主从数据库存在于数据库test001[root@mysql-m~]#mysql-uroot-p-e"showdatabases;"|greptest001输入密码:test001[root@mysql-s~]#mysql-uroot-p-e"showdatabases;"|greptest001输入密码:test001向主库插入数据,测试从库同步mysql>usetest001;Databasechangedmysql>createtabletest(->idvarchar(10)notnull,->namevarchar(10)notnull->);QueryOK,0rowsaffected(0.06sec)mysql>insertintotestvalues('zhang','man');查询成功,1rowaffected(0.03sec))mysql>从测试中选择*;+--------+------+|编号|名字|+------+-----+|张|man|+------+-----+1rowinset(0.00sec)mysql>select*fromtest001.test;ERROR1146(42S02):表'test001.test'没有'texistmysql>usetest001;Databasechangedmysql>showtables;Emptyset(0.00sec)结论:从库中没有表,也同步数据3:需要默认数据库同步(如mysql)replicate-ignore-db=mysql#忽略指定不同步的库测试前的数据[root@mysql-m~]#mysql-uroot-p-e"selectuser,hostfrommysql.user;"输入密码:+---------+--------------+|用户|主机|+------------+------------+|mysql.sys|本地主机||根|localhost|+------------+------------+[root@mysql-s~]#mysql-uroot-p-e"选择用户,hostfrommysql.user;"输入密码:+------------+------------+|用户|主机|+------------+------------+|mysql.sys|本地主机||根|localhost|+------------+------------+[root@mysql-m~]#mysql-uroot-p-e"授予所有权限on*.*totest@localhostidentifiedby'123456';"Enterpassword:[root@mysql-m~]#mysql-uroot-p-e"selectuser,hostfrommysql.user;"输入密码:+-----------+------------+|用户|主机|+------------+------------+|mysql.sys|本地主机||根|本地主机||测试|localhost|+------------+------------+[root@mysql-s~]#mysql-uroot-p-e"选择用户,主持人frommysql.user;"输入密码:+------------+------------+|用户|主机|+------------+------------+|mysql.sys|localhost||root|localhost||test|localhost|+------------+-----------+结论:在该模式下,该配置对默认库不生效,所以调整配置replicate-ignore-db=mysql#忽略指定的out-of-synclibraryreplicate-wild-ignore-table=mysql.%#忽略指定不同步库的所有表[root@mysql-m~]#mysql-uroot-p-e"grantallprivilegeson*.*totestuser@localhostidentifiedby'123456';"Enterpassword:[root@mysql-m~]#mysql-uroot-p-e"selectuser,hostfrommysql.user;"Enterpassword:+-----------+-------------+|用户|主机|+------------+-------------+|mysql.sys|localhost||root|localhost||test|localhost||testuser|localhost|+------------+--------------+[root@mysql-s~]#mysql-uroot-p-e"selectuser,hostfrommysql.user;"输入密码:+------------+---------------+|用户|主机|+------------+------------+|mysql.sys|本地主机||根|本地主机||特圣|localhost|+------------+--------------+结论:在该模式下,该配置不同步数据库与默认库,需要添加相关表的参数,最后测试发现没有添加replicate-ignore-db=mysql参数,对默认库也会生效。binlog-format=STATEMENT方式修改主从库的binlog方式,将不存在的库和存在的库一起测试。库和默认库replicate-ignore-db=test#忽略指定的不同步库(主从不存在)replicate-ignore-db=test001#忽略指定的不同步库replicate-wild-ignore-table=mysql.%#忽略所有指定未同步库的表1:测试默认库数据同步mysql>grantallprivilegeson*.*touser@'localhost'identifiedby'123456';QueryOK,0rowsaffected,1个警告(0.03秒)mysql>selectuser,hostfrommysql.user;+------------+------------+|用户|主机|+----------+------------+|代表|%||mysql.sys|本地主机||根|本地主机||测试|本地主机||用户|localhost|+----------+------------+5rowsinset(0.01sec)[root@mysql-s~]#mysql-uroot-p-e"selectuser,hostfrommysql.user;"输入密码:+------------+------------+|用户|主机|+-----------+------------+|代表|%||mysql.sys|本地主机||根|本地主机||测试|localhost|+------------+------------+结论:该模式下,对于默认库,配置replicate-ignore-db=mysql,即对默认库和库中的表都有效2:主从服务器库已经同步时测试数据同步(test001)mysql>usetest001;Databasechangedmysql>createtabletest001(->idvarchar(10)notnull,->namevarchar(10)notnull->);QueryOK,0rowsaffected(0.06sec)mysql>insertintotest001values('zhang','man');查询成功,1行受影响(0.11sec)[root@mysql-m~]#mysql-uroot-p-e"select*fromtest001.test001;"输入密码:+------+------+|编号|名字|+------+-----+|张|man|+------+-----+[root@mysql-s~]#mysql-uroot-p-e"select*fromtest001.test001;"输入密码:ERROR1146(42S02)atline1:Table'test001.test001'doesn'texist点击-->民工技术之路关注微信公众号,在对话框中回复关键词:1024,即可获取一份最新2048G技术干货:包括系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELKStack、机器学习、BAT面试精讲视频,ETC。
