一個主庫上有2個數據庫,分別把這兩個數據庫同步到不一樣的從服務器

(1)主從機
主機:10.10.54.86
從機1:10.10.54.85
從機2:10.10.54.87
數據庫:a 同步到從1
數據庫:b 同步到從2

(2)master配置,slave配置
master:
log-bin=master-bin
binlog_format=mixed
server-id       = 1

slave1:
log-bin=slave-bin
binlog_format=mixed
server-id       = 10


slave2:
log-bin=slave-bin
binlog_format=mixed
server-id       = 11

(3)在master建立複製用戶並授予權限
mysql> grant replication slave on *.* to 'a'@'10.10.54.85' identified by 'a';
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.* to 'b'@'10.10.54.87' identified by 'b';
Query OK, 0 rows affected (0.02 sec)

(4)
mysql> show master status;
+-------------------+-----------+--------------+------------------+
| File              | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+-----------+--------------+------------------+
| master-bin.000014 | 379342358 |              |                  |
+-------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)


(5)
從1:
[root@nan85 ~]# vim /etc/my.cnf 
replicate-do-db=a
從2:
[root@nan87 tmp]# vim /etc/my.cnf 
replicate-do-db=b

(6)
從1:
mysql> change master to master_host='10.10.54.86',master_user='a',master_password='a',master_log_file='master-bin.000014',master_log_pos=379342358;
Query OK, 0 rows affected (0.05 sec)

從2:
mysql> change master to master_host='10.10.54.86',master_user='b',master_password='b',master_log_file='master-bin.000014',master_log_pos=379342358;
Query OK, 0 rows affected (0.01 sec)

(6)
從1:
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

從2:
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

(7)
從1:
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.54.86
                  Master_User: a
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000014
          Read_Master_Log_Pos: 379342358
               Relay_Log_File: nan85-relay-bin.000002
                Relay_Log_Pos: 254
        Relay_Master_Log_File: master-bin.000014
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

從2:
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.54.86
                  Master_User: b
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000014
          Read_Master_Log_Pos: 379342358
               Relay_Log_File: nan87-relay-bin.000002
                Relay_Log_Pos: 254
        Relay_Master_Log_File: master-bin.000014
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

(8)測試
在主上:
mysql> drop database a;
Query OK, 0 rows affected (0.00 sec)

從1:顯示數據庫a刪除
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| employees          |
| mysql              |
| performance_schema |
| test               |
+--------------------+

從2:數據庫a還在
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| a                  |
| employees          |
| mysql              |
| performance_schema |
| test               |
+--------------------+

備註:經測試,在主機上對數據庫a操做,在從1上數據庫a有做用,而在主上對數據庫b作操做,在從2上數據庫a起做用。
相關文章
相關標籤/搜索