您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何進(jìn)行mysql數(shù)據(jù)庫主從同步中數(shù)據(jù)庫同步配置,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
背景: 最近有一個(gè)mysql數(shù)據(jù)庫同步的需求,我用了mysql主從同步的方法來實(shí)現(xiàn)。下面把步驟記錄一下。
環(huán)境和拓?fù)?/strong>
操作系統(tǒng):Centos6.6 X64
mysql版本:5.1.73
Master: 10.6.1.210
Slave: 10.6.1.211
需求: 實(shí)現(xiàn)Master上test庫同步到Slave上,但是禁止同步該庫下的AA表
1.配置Master上的my.cnf
#vim /etc/my.cnf 添加內(nèi)容到[mysqld]下,設(shè)定只同步test 數(shù)據(jù)庫:
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
binlog_do_db=test
server-id=1
2.配置Slave上的my.cnf
#vim /etc/my.cnf
添加內(nèi)容到[mysqld]下:
log-bin=mysql-bin
binlog_format=mixed
server-id=10
relay-log =relay-bin
log_slave_updates=1
replicate_ignore_table=AA(忽略同步某個(gè)表)
3.在Master中建立一個(gè)備份帳戶:每個(gè)slave使用標(biāo)準(zhǔn)的MySQL用戶名和密碼連接Master,用戶名的密碼都會(huì)存儲(chǔ)在文本文件master.info。進(jìn)行復(fù)制操作的用戶會(huì)授予REPLICATION SLAVE 權(quán)限。
命令如下:
#建立一個(gè)帳戶repluser,并且只能允許10.6.1.211這個(gè)主機(jī)來登陸,密碼是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.拷貝數(shù)據(jù),保持?jǐn)?shù)據(jù)庫內(nèi)數(shù)據(jù)一致,新安裝可以忽略此步驟。
備份Master上的test庫,然后復(fù)制到從服務(wù)器上.
#mysqldump -u root -p password123 test>/tmp/test.sql
將導(dǎo)出的數(shù)據(jù)庫復(fù)制到從服務(wù)器上。
#scp /tmp/test.sql root@10.6.1.211:/tmp/
在Slave上導(dǎo)入新的test數(shù)據(jù)庫。 登陸從后運(yùn)行
#mysql -u root -p password123 test</tmp/test.sql
5.重啟mysql服務(wù),主從server均要重啟。
#service mysql restart
6.查看Master數(shù)據(jù)庫上的bin文件以及時(shí)間點(diǎn). 登錄Master服務(wù)器的mysql 后執(zhí)行:
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,節(jié)點(diǎn)為2474。
7.啟動(dòng)從服務(wù)器的中繼日志,登陸從服務(wù)器的mysql 后執(zhí)行以下命令,標(biāo)紅部分為剛才在主服務(wù)器上查詢到的bin 文件以及節(jié)點(diǎn)信息:
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)
#開啟從服務(wù)器節(jié)點(diǎn)的復(fù)制進(jìn)程,實(shí)現(xiàn)主從復(fù)制;
mysql>start slave;
#查看從服務(wù)器狀態(tài),主要關(guān)注IO線程和SQL 線程的開啟狀況:
mysql>show slave status \G
…
…
Slave_IO_Running:Yes #IO thread 是否運(yùn)行
Slave_SQL_Running:Yes #SQL thread是否運(yùn)行
…
…
8.查看主從服務(wù)器上的線程狀態(tài)
主服務(wù)器:
mysql>show processlist \G
…
…
State: Has sent all binlog to slave; waiting for binlog to be updated
…
…
從服務(wù)器
mysql>show processlist \G
…
…
State: Has read all relay log; waiting for the slave I/O thread to update it
…
…
至此,mysql數(shù)據(jù)庫主從同步復(fù)制配置完成.
驗(yàn)證
1. 在Master上的test庫下新建一個(gè)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庫下新建一個(gè)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)
關(guān)于如何進(jìn)行mysql數(shù)據(jù)庫主從同步中數(shù)據(jù)庫同步配置就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。