您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何進行mysql數據庫主從同步中數據庫同步配置,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
背景: 最近有一個mysql數據庫同步的需求,我用了mysql主從同步的方法來實現。下面把步驟記錄一下。
環境和拓撲
操作系統:Centos6.6 X64
mysql版本:5.1.73
Master: 10.6.1.210
Slave: 10.6.1.211
需求: 實現Master上test庫同步到Slave上,但是禁止同步該庫下的AA表
1.配置Master上的my.cnf
#vim /etc/my.cnf 添加內容到[mysqld]下,設定只同步test 數據庫:
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
binlog_do_db=test
server-id=1
2.配置Slave上的my.cnf
#vim /etc/my.cnf
添加內容到[mysqld]下:
log-bin=mysql-bin
binlog_format=mixed
server-id=10
relay-log =relay-bin
log_slave_updates=1
replicate_ignore_table=AA(忽略同步某個表)
3.在Master中建立一個備份帳戶:每個slave使用標準的MySQL用戶名和密碼連接Master,用戶名的密碼都會存儲在文本文件master.info。進行復制操作的用戶會授予REPLICATION SLAVE 權限。
命令如下:
#建立一個帳戶repluser,并且只能允許10.6.1.211這個主機來登陸,密碼是123456。
mysql>grant replication client,replication slave on *.* to 'repluser'@'10.6.1.211' identified by '123456';
QueryOK,0 rows affected(0.00sec)
mysql>flush privileges;
QueryOK,0 rows affected(0.00sec)
4.拷貝數據,保持數據庫內數據一致,新安裝可以忽略此步驟。
備份Master上的test庫,然后復制到從服務器上.
#mysqldump -u root -p password123 test>/tmp/test.sql
將導出的數據庫復制到從服務器上。
#scp /tmp/test.sql root@10.6.1.211:/tmp/
在Slave上導入新的test數據庫。 登陸從后運行
#mysql -u root -p password123 test</tmp/test.sql
5.重啟mysql服務,主從server均要重啟。
#service mysql restart
6.查看Master數據庫上的bin文件以及時間點. 登錄Master服務器的mysql 后執行:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000015 | 2474 | test | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
此處,bin文件為mysql-bin.000015,節點為2474。
7.啟動從服務器的中繼日志,登陸從服務器的mysql 后執行以下命令,標紅部分為剛才在主服務器上查詢到的bin 文件以及節點信息:
mysql>change master to master_host='10.6.1.210',master_user='repluser',
master_password='123456',master_log_file='mysql-bin.000015',master_log_pos=2474,
master_connect_retry=5
QueryOK,0 rows affected(0.03sec)
#開啟從服務器節點的復制進程,實現主從復制;
mysql>start slave;
#查看從服務器狀態,主要關注IO線程和SQL 線程的開啟狀況:
mysql>show slave status \G
…
…
Slave_IO_Running:Yes #IO thread 是否運行
Slave_SQL_Running:Yes #SQL thread是否運行
…
…
8.查看主從服務器上的線程狀態
主服務器:
mysql>show processlist \G
…
…
State: Has sent all binlog to slave; waiting for binlog to be updated
…
…
從服務器
mysql>show processlist \G
…
…
State: Has read all relay log; waiting for the slave I/O thread to update it
…
…
至此,mysql數據庫主從同步復制配置完成.
驗證
1. 在Master上的test庫下新建一個test表. 插入記錄,然后看看是否同步到了Slave上。
Master上建表
mysql> CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ;
Master上插入記錄
mysql>insert into test(id,name) values(1,'steven');
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | steven |
+----+--------+
1 row in set (0.00 sec)
Slave上查看是否同步過去.
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | steven |
+----+--------+
1 row in set (0.00 sec)
2. 在Master上的test庫下新建一個AA表. 插入記錄,然后看看是否同步到了Slave上。
在Master上查詢AA表.
mysql> select * from AA;
+----+--------+
| id | name |
+----+--------+
| 1 | Angelababy |
+----+--------+
1 row in set (0.00 sec)
Slave上查詢AA記錄是空.
mysql> select * from AA;
Empty set (0.00 sec)
關于如何進行mysql數據庫主從同步中數據庫同步配置就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。