mysql 複製引數replicate_do_db和replicate_ignore_db介紹
主庫:
binlog-do-db = test binlog-do-db = lhrdb binlog-ignore-db = mysql binlog-ignore-db = information_schema binlog-ignore-db = performance_schema binlog-ignore-db = mysql binlog-ignore-db = sys
從庫:
[mysqld] server-id = 2 log_bin=E:\MySQL\mysql-advanced-5.6.21-win32\data\xpdblhr-bin expire_logs_days=10 max_binlog_size = 100M replicate_do_db=test replicate_do_db=lhrdb replicate_ignore_db=information_schema replicate_ignore_db=performance_schema replicate_ignore_db=mysql replicate_ignore_db=sys
演示環境:
1.MySQL5.7.24 二進位制安裝包
2.master庫和slave庫都是全新的環境進行配置
3.MySQL開啟gtid 並且指定具體的資料庫進行同步庫
maser 庫my.cnf配置操作:
[root@VM_82_178_centos ~]# egrep 'server_id|log_slave_updates|gtid_mode|enforce_gtid_consistency|log_bin|binlog_format' /etc/my.cnfserver_id =1313306binlog_format =row log_bin =/data/mysql7/binlog/mysql-bin log_slave_updates =on gtid_mode =on enforce_gtid_consistency =on
mysql -e "grant replication slave on *.* to novelrep@'192.195.1.228' identified by 'JuwoSdk21TbUser'; flush privileges;" mysqldump -uroot -p'jianwuweirootmysql' --databases test01 test02 --set-gtid-purged=OFF -F --master-data=2 --single-transaction --events|gzip >/opt/juwo_$(date +%F).sql.gz
slave庫my.cnf配置操作:
[root@localhost ~]# egrep 'server_id|log_slave_updates|gtid_mode|enforce_gtid_consistency|log_bin|binlog_format' /etc/my.cnfserver_id =2283306 binlog_format =row log_bin =/data/mysql/binlog/mysql-bin log_slave_updates =on gtid_mode =on enforce_gtid_consistency =on [root@localhost ~]#
##slave庫上配置如下引數指定資料庫進行同步,master庫上不需要配置如下引數:
[root@localhost ~]# egrep 'replicate_do_db|replicate_ignore_db' /etc/my.cnfreplicate_do_db=test01replicate_do_db=test02replicate_ignore_db=test03replicate_ignore_db=information_schemareplicate_ignore_db=performance_schemareplicate_ignore_db=mysqlreplicate_ignore_db=sys
#####重啟mysql服務:
[root@localhost ~]# gzip -d juwo_2018-12-15.sql.gz [root@localhost ~]# ll juwo_2018-12-15.sql -rw-r--r-- 1 root root 3936 12月 15 15:57 juwo_2018-12-15.sql[root@localhost ~]#
####匯入資料到slave,然後change master to:
mysql -e "source /root/juwo_$(date +%F).sql" mysql -e "CHANGE MASTER TO MASTER_HOST='192.168.97.131',MASTER_PORT=3306,MASTER_USER='novelrep',MASTER_PASSWORD='JuwoSdk21TbUser',MASTER_AUTO_POSITION = 1;start slave;show slave status\G" |grep -i "yes"
到此處主從複製配置完成
引數replicate_do_db和replicate_ignore_db演示分析:
master庫上操作:
root@localhost [mysql]>use mysql Database changed root@localhost [mysql]>grant all on test01.* to test01@'127.0.0.1' identified by '356893'; root@localhost [mysql]>select user,host from mysql.user where user='test01'; +--------+-----------+ | user | host | +--------+-----------+ | test01 | 127.0.0.1 | +--------+-----------+1 row in set (0.00 sec)
slave庫上操作:
root@localhost [test01]>select user,host from mysql.user where user='test01'; Empty set (0.00 sec) root@localhost [test01]> 空的沒有被同步過來
master上操作:
root@localhost [mysql]>use test01;Database changedroot@localhost [test01]>grant all on test01.* to test02@'127.0.0.1' identified by '356893';Query OK, 0 rows affected, 1 warning (0.01 sec)
slave庫上操作:被同步到slave庫上了,但是我們們一開始在salve 上是設定的是不同步mysql庫的
select user,host from mysql.user where user='test02'; +--------+-----------+| user | host | +--------+-----------+| test02 | 127.0.0.1 | +--------+-----------+1 row in set (0.00 sec)
master庫上操作:
root@localhost [test01]>drop user test02@'127.0.0.1';Query OK, 0 rows affected (0.00 sec)root@localhost [test01]>select user,host from mysql.user where user='test02';Empty set (0.00 sec)root@localhost [test01]>
slave庫上操作:看到slave庫上的test02使用者同時也被刪除了
root@localhost [test01]>select user,host from mysql.user where user='test02'; Empty set (0.00 sec)
在master上操作刪除一開始use切入mysql庫建立的使用者test01@'127.0.0.1'
root@localhost [test01]>drop user test01@'127.0.0.1';Query OK, 0 rows affected (0.01 sec)
在slave庫上檢視:同步報錯
原因是:一開始use切入mysql庫建立的使用者test01@'127.0.0.1' 沒有同步到slave庫上,如果此時在master庫上沒有use切入到mysql庫來執行刪除使用者的語句,由於slave上沒有同步過來使用者,自然master刪除使用者時,slave庫上同步報錯
Last_SQL_Errno: 1396 Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'df8f817c-f215-11e8-83e4-525400950067:22' at master log mysql-bin.000001, end_log_pos 7734. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
解決辦法就是在slave庫上把這個使用者建立出來:
root@localhost [test01]>grant all on test01.* to test01@'127.0.0.1' identified by '123456';Query OK, 0 rows affected, 1 warning (0.01 sec) **重啟slave sql_thread 執行緒**root@localhost [test01]>stop slave sql_thread;root@localhost [test01]>start slave sql_thread; 同步就ok了。
由此而得出如下結論:
在salve庫上使用replicate_do_db和replicate_ignore_db引數進行過濾資料庫同步時,此時在系統預設的mysql庫上存在一個隱患,就是在master庫上進行跨庫update更新mysql庫下的表或者是grant 進行mysql授權,以及drop user時,slave庫上配置的忽略mysql庫同步的引數失效。也就是master庫上誇庫操作mysql庫下的表時,是會同步到slave庫的。要是use切換到mysql庫進行操作時,grant 進行授權,update 更新mysql庫下的表,drop 刪除時,這樣的話master上對mysql庫的操作是不會同步到slave上的mysql庫中的。
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub( http://blog.itpub.net/26736162 )、部落格園( http://www.cnblogs.com/lhrbest )和個人微 信公眾號( xiaomaimiaolhr )上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: ........................................................................................................................ ● QQ群號: 230161599 (滿) 、618766405 ● 微 信群:可加我微 信,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ) ,註明新增緣由 ● 於 2019-07-01 06:00 ~ 2019-07-31 24:00 在西安完成 ● 最新修改時間:2019-07-01 06:00 ~ 2019-07-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店 : ● 小麥苗出版的資料庫類叢書 : http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班 : http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁 : https://lhr.ke.qq.com/ ........................................................................................................................ 使用 微 信客戶端 掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2650836/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 複製介紹及搭建MySql
- MySQL入門--複製技術介紹MySql
- MySQL主主複製(雙主複製)配置過程介紹MySql
- MySQL 5.7 複製的過濾引數MySql
- MySQL主從複製配置心跳功能介紹MySql
- MySQL Replication的複製執行緒介紹MySql執行緒
- mysql一些引數的介紹MySql
- MySQL組複製(MGR)全解析 Part 2 常用複製技術介紹MySql
- MySQL change buffer介紹和相關引數調整建議MySql
- MySQL GTID複製的優缺點介紹MySql
- 資料庫複製(一)–複製介紹資料庫
- MySQL主從複製的詳細過程介紹MySql
- MySQL主從複製結構中常用引數MySql
- docker 引數介紹Docker
- 複製管理工具介紹——高階複製
- MySQL query_cache_type的DEMAND引數介紹和使用舉例MySql
- MySQL 複製全解析 Part 1 實驗環境介紹MySql
- Python 中變數賦值傳遞時的引用和複製介紹Python變數賦值
- gcc 常用引數介紹GC
- HRMS Function 引數介紹Function
- Redis主從複製工作原理和步驟介紹Redis
- percona之複製工具介紹
- ORACLE流複製技術介紹Oracle
- mysql二進位制日誌的引數介紹MySql
- 【MYSQL】兩階段提交及相關引數介紹MySql
- MySQL中的統計資訊相關引數介紹MySql
- MySQL主從複製配置引數 -- logs-slave-updatesMySql
- Oracle 各版本引數/隱藏引數 介紹Oracle
- Redis主從複製的全量和增量同步介紹Redis
- MongoDB啟動引數介紹MongoDB
- PostgreSQLGUC引數級別介紹SQL
- margin引數簡單介紹
- margin 引數簡單介紹
- ipchains引數介紹(轉)AI
- JavaScript複製dom元素簡單介紹JavaScript
- MySQL主從複製、半同步複製和主主複製MySql
- MySQL主從複製之GTID模式詳細介紹鞴嬈MySql模式
- 【MySQL】保證複製高可用的一些重要引數MySql