程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL主主同步配置

MySQL主主同步配置

編輯:MySQL綜合教程

MySQL主主同步配置   實戰環境介紹:   服務器名 IP 系統 MySQL odd.example.com 192.168.1.116 rhel-5.8 5.5.16 even.example.com 192.168.1.115 rhel-5.8 5.5.16        假設要同步的庫是 db_rocky            ㈠ 創建同步用戶            在 ODD上   [plain]  mysql> grant replication slave on *.* to 'water'@'192.168.1.115' identified by 'cdio2010';   Query OK, 0 rows affected (0.00 sec)      mysql> flush privileges;   Query OK, 0 rows affected (0.00 sec)            在 EVEN 上   [plain]  mysql> grant replication slave on *.* to 'water'@'192.168.1.116' identified by 'cdio2010';   Query OK, 0 rows affected (0.11 sec)      mysql> flush privileges;   Query OK, 0 rows affected (0.00 sec)            ㈡ 修改 /etc/my.cnf 配置文件,為其添加以下內容:        在 ODD 上  [plain]  [mysqld]      binlog-do-db=db_rocky #需要記錄進制日志的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個binlog-do-db選項   binlog-ignore-db=mysql #不需要記錄進制日志的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個binlog-do-db選項   replicate-do-db=db_rocky #需要進行同步的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個replicate-do-db選項   replicate-ignore-db=mysql,information_schema #不需要同步的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個replicate-ignore-db選項   #同步參數:   #保證slave掛在任何一台master上都會接收到另一個master的寫入信息   log-slave-updates   sync_binlog=1   auto_increment_offset=1   auto_increment_increment=2   slave-skip-errors=all #過濾掉一些沒啥大問題的錯誤            在 EVEN 上 [plain]  [mysqld]   server-id=2 #設置一個不同的id、注意這裡在my.cnf裡面有個默認值是 1 、把默認值改掉、而不能新增一個server-id   binlog-do-db=db_rocky #需要記錄二進制日志的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個binlog-do-db選項   binlog-ignore-db=mysql #不需要記錄進制日志的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個binlog-ignore-db選項   #需要同步的數據庫   replicate-do-db=db_rocky #需要進行同步的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個binlog-do-db選項   replicate-ignore-db=mysql,information_schema #不需要同步的數據庫.如果有多個數據庫可用逗號分隔,或者使用多個binlog-do-db選項   #同步參數:   #保證slave掛在任何一台master上都會接收到另一個master的寫入信息   log-slave-updates   sync_binlog=1   auto_increment_offset=2   auto_increment_increment=2   slave-skip-errors=all #過濾掉一些沒啥大問題的錯誤            ㈢ 分別重啟服務器ODD  EVEN 上的mysql服務                   ㈣ 分別在服務器ODD、EVEN 上查看做為主服務器狀態            在ODD   [plain]  mysql> flush tables with read lock;#防止進入新的數據   Query OK, 0 rows affected (0.00 sec)      mysql> show master status\G;   *************************** 1. row ***************************               File: mysql-bin.000007           Position: 438       Binlog_Do_DB: db_rocky   Binlog_Ignore_DB: mysql   1 row in set (0.00 sec)            在EVEN [plain]  mysql> flush tables with read lock;   Query OK, 0 rows affected (0.00 sec)      mysql> show master status\G;   *************************** 1. row ***************************               File: mysql-bin.000008           Position: 107       Binlog_Do_DB: db_rocky   Binlog_Ignore_DB: mysql   1 row in set (0.01 sec)            ㈤ 分別在服務器ODD、EVEN上用change master語句指定同步位置 :             在ODD [plain]  mysql> change master to master_host='192.168.1.115',master_user='water',master_password='cdio2010',       -> master_log_file='mysql-bin.000008',master_log_pos=107;   Query OK, 0 rows affected (0.05 sec)            在EVEN [plain]  mysql> change master to master_host='192.168.1.116',master_user='water',master_password='cdio2010',       -> master_log_file='mysql-bin.000007',master_log_pos=438;   Query OK, 0 rows affected (0.15 sec)            注:master_log_file,master_log_pos由上面主服務器查出的狀態值中確定              master_log_file對應File,master_log_pos對應Position                  在ODD EVEN上   [plain]  mysql> unlock tables;   Query OK, 0 rows affected (0.00 sec)            ㈥ 分別在服務器ODD、EVEN上啟動從服務器線程    [plain]  mysql> start slave;   Query OK, 0 rows affected (0.00 sec)            分別在服務器ODD、EVEN上查看從服務器狀態 :   [plain]  ODD上      mysql> show slave status\G;   *************************** 1. row ***************************   主要關注以下 2 個參數:   ...   ...                Slave_IO_Running: Yes               Slave_SQL_Running: Yes   ...   ...         EVEN上:      mysql> show slave status\G;   *************************** 1. row ***************************   主要關注以下 2 個參數:   ...   ...                Slave_IO_Running: Yes               Slave_SQL_Running: Yes   ...   ...          ㈦ 測試   [plain]  EVEN 上      mysql> show databases;   +--------------------+   | Database           |   +--------------------+   | information_schema |   | db_rocky           |   | mysql              |   | performance_schema |   | test               |   +--------------------+   5 rows in set (0.00 sec)      mysql> use db_rocky;   Database changed   mysql> show tables;   Empty set (0.00 sec)      mysql> create table water (id int);   Query OK, 0 rows affected (0.04 sec)      mysql> insert into water values(1);   Query OK, 1 row affected (0.01 sec)      mysql> commit;   Query OK, 0 rows affected (0.00 sec)      在 ODD 上      mysql> show tables;   +--------------------+   | Tables_in_db_rocky |   +--------------------+   | t_rocky            |   | water              |   +--------------------+   2 rows in set (0.00 sec)      mysql> select * from water;   +------+   | id   |   +------+   |    1 |   +------+   1 row in set (0.00 sec)  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved