mysql ab复制延时_Mysql的AB复制
Mysql的AB復制
環境:rhel 6.5
master:192.168.2.1
slave1:192.168.2.2
slave2:192.168.2.10
1.mysql的單向復制
注: mysql數據庫的版本,兩個數據庫版本要相同,或者slave比master版本高!
yum install ?mysql-server -y
請注意當你進行復制時,所有對復制中的表的更新必須在主服務器上進行。否則,你
必須要小心,以避免用戶對主服務器上的表進行的更新與對從服務器上的表所進行的
更新之間的沖突。
master server配置
開啟mysqld服務
mysql> show master status;
+------------------+----------+--------------+------------------+
| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | ? ? ?106 | westos ? ? ?| mysql ? ? ? ? ? ?|
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
1)創建同步帳戶,并給予權限
mysql> grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';
mysql>flush privileges;
2 )配置 /etc/my.cnf配置文件
在[mysqld]下添加一下參數
log-bin=mysql-bin #啟動二進制日志系統
binlog-do-db=westos #二進制需要同步的數據庫名
server-id=1 #必須為1到232–1之間的一個正整數值
binlog-ignore-db=mysql #避免同步 mysql用戶配置,以免不必要的麻煩
3 )service mysqld restart
slave server配置
1 )配置 /etc/ my.cnf文件
在[mysqld]下添加一下參數
server-id=2 #從服務器 ID號,不要和主ID相同,如果設置多個從服務器,每個從服務器必須有一個唯一的server-id值,必須與主服務器的以及其它從服務器的不相同??梢?認為server-id值類似于IP地址:這些ID值能唯一識別復制服務器群集中的每個服務 器實例。
2 )service mysqld ? start
mysql -uwestos ?-pwestos ?-h ?192.168.2.1 #進入mysql
mysql> change master to master_host='192.168.2.1', master_user='westos', master_password='westos', master_log_file='mysql-bin.000003', master_log_pos=106; #注意跟master的日志文件,日志位置保持一致
mysql> slave start;
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.2.1
Master_User: westos
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 106
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 407
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
在master創建數據庫,創建表添加數據,看slave server是否同步
mysql> create database westos;
mysql> use westos;
mysql> create table linux(
-> username varchar(20) ?not ?null,
-> password varchar(50) ?not ?null
-> );
mysql> desc linux;
mysql> insert into linux values ('user1','123');
mysql> insert into linux values ('user2',password(123));
mysql> select * from linux;
+----------+-------------------------------------------+
| username | password ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
+----------+-------------------------------------------+
| user1 ? ?| 123 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| user2 ? ?| *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+----------+-------------------------------------------+
slave機子上:
mysql> show databases;
mysql> select * from westos.linux; #數據同步成功
+----------+-------------------------------------------+
| username | password ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
+----------+-------------------------------------------+
| user1 ? ?| 123 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| user2 ? ?| *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+----------+-------------------------------------------+
master上更改:
mysql> update linux set password=456;
slave上:#查看數據同步已過來
mysql> select * from westos.linux;
+----------+----------+
| username | password |
+----------+----------+
| user1 ? ?| 456 ? ? ?|
| user2 ? ?| 456 ? ? ?|
+----------+----------+
線性A- > B - > C,master - >slave1- >slave2
添加一個slave2,192.168.2.10
在slave1即node2上修改配置文件
vim /etc/my.cnf
server-id=2
添加:log-bin=mysql-bin
binlog-do-db=westos
inlog-ignore-db=mysql
log-slave-updates
/etc/init.d/mysqld ?restart #重啟mysql
授權mysql>grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';
mysql> flush privileges;
在slave2即192.168.2.10上:
驗證權限 ?mysql -uwestos ?-pwestos ?-h ?192.168.2.2看能否登錄進mysql
vim /etc/my.cnf
server-id=3
/etc/init.d/mysqld ?restart #重啟mysql
在slave1上:
由于 master上已經有數據,而新加的slave2沒有,必須在配置復制前同步數據。
把westos庫里的表導入到back里
mysqldump westos > back
scp back 192.168.2.10: #把庫發給slave2
在slave2上:
mysqladmin create westos #創建westos庫
mysql westos < back #把back庫里的表導入到westos庫
mysql> show databases;
mysql> use westos;
mysql> show tables;
mysql> select * from linux;
在slave1上mysql> show master status;
+------------------+----------+--------------+------------------+
| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | ? ? ?106 | westos ? ? ? | mysql ? ? ? ? ? ?|
+------------------+----------+--------------+------------------+
slave2上:
mysql> change master to master_host='192.168.2.2', master_user='westos', master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=106
mysql> slave start;
mysql> show salve status\G; #查看狀態是否正常
現在開始測試:
在A master上mysql> delete from linux;
驗證查看B slave1和C slave2 ? mysql> select * from linux;
在A master上mysql> insert into linux values ('sxy','123');
驗證查看B slave1和C slave2 ? mysql> select * from linux;
+----------+----------+
| username | password |
+----------+----------+
| sxy ? ? ?| 123 ? ? ?|
+----------+----------+
總結
以上是生活随笔為你收集整理的mysql ab复制延时_Mysql的AB复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2799元 老外种草realme GT
- 下一篇: 4999元起!华为Mate 40系列今晚