主從復制-配置

建立基本的主從復制可以總結為以下三個步驟:

配置一個master服務器

配置一個slave服務器

將slave連接至master闪水。

1)浦辨、配置master服務器:

要求master服務器開啟二進制日志(binary log)和唯一的服務器ID。二進制日志記錄了master上的所有變更渐白,并且可以在其他服務器重新執(zhí)行。服務器ID用于區(qū)分服務器。這兩部分內容都是需要更改/etc/my.cnf文件拄踪,需要停止mysql服務器。

在[mysqld]小節(jié)增加如下內容:

log_bin=master-bin#binlog日志文件的基本名

log_bin_index=master-bin-index#binlog日志文件的索引文件名拳魁。

expire_logs_days=14#binlog文件保留的天數(shù)惶桐。0代表永不刪除

skip_slave_start#指定復制進程就不會隨著數(shù)據庫的啟動而啟動

sync_binlog=1#指定binlog文件多久軍民一致一次磁盤,值實際為事務提交的次數(shù)。

slave_net_timeout=60#設置在多久沒收到數(shù)據后認為網絡超時姚糊,之后Slave的IO線程會重新連接Maste

server_id=165

在master創(chuàng)建一個復制用戶

mysql> grant replication slave on *.* to"repl_user"@'192.168.10.%' identified by "123456";

2)贿衍、配置slave服務器

在slave服務器上,常規(guī)情況下我們只需要配置一個唯一的serverID,然后分別使用relay-log和relay-log-index選項配置中繼日志文件和中繼日志索引文件即可叛拷。在slave服務器上停止mysql服務舌厨,編輯slave服務器的/etc/my.cnf文件。

在[mysqld]小節(jié)增加如下內容:

server-id=166

relay_log=slave-relay-bin

relay_log_index=slave-relay-bin-index

log_slave_updates=1

配置主從服務器的配置后忿薇,重新啟動兩個服務器上的mysqld服務裙椭。

3)、同步數(shù)據

在正式開啟主從復制前署浩,需要保證master與slave服務器上的數(shù)據是一致揉燃,我們需要在master上備份數(shù)據庫,然后在slave上恢復數(shù)據庫筋栋,并記錄下master上當前相關二進制日志的信息炊汤。

mysql> flush tables withread lock;

Query OK, 0 rows affected (0.00sec)

mysql> show master status;

+-------------------+----------+--------------+------------------+-------------------+

| File| Position | Binlog_Do_DB |Binlog_Ignore_DB | Executed_Gtid_Set |

+-------------------+----------+--------------+------------------+-------------------+

| master-bin.000002 |334 ||||

+-------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

mysql>

鎖定數(shù)據庫,并記錄二進制文件在位置

[root@linux-node1 ~]#mysqldump-uroot –p123456 -A -B –events --default-character-set>/opt/$(date +%F).sql

[root@linux-node1 ~]# ll/opt/2017-03-31.sql

-rw-r--r-- 1 root root 203 Mar31 16:53 /opt/2017-03-31.sql

[root@linux-node1 ~]#

備份所有庫弊攘,這里使用了mysqldump命令抢腐,有很多參數(shù),具體大家可以查閱相關資料襟交,其中有一個參數(shù)比較有用迈倍,--master-data選項使mysqldump產生change master to語句,值為1時捣域,產生可用的change master to完整語句啼染,為2時,該語句被注釋焕梅。

mysql> unlock tables;

Query OK, 0 rows affected (0.00sec)

mysql>

解鎖主庫

[root@linux-node2 ~]# mysql-uroot -p123456

Warning: Using a password onthe command line interface can be insecure.

[root@linux-node2 ~]#

使用主庫的備份文件在從庫上恢復數(shù)據庫迹鹅,這樣master與slave上的數(shù)據就是相同的了。

4)贞言、slave連接master并啟動主從復制

mysql>change?master to master_host = '192.168.10.71',master_port = 3306,master_user = 'repl_user',master_password = '123456',master_log_file ='master-bin.000002',master_log_pos = 334;

mysql> start slave;

Query OK, 0 rows affected (0.01sec)

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G;

*************************** 1. row***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.10.71

Master_User: repl_user

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: master-bin.000002

Read_Master_Log_Pos: 334

Relay_Log_File: slave-relay-bin.000002

Relay_Log_Pos: 284

Relay_Master_Log_File: master-bin.000002

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: 334

Relay_Log_Space: 457

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:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 165

Master_UUID:0e9896a7-14f7-11e7-a0e6-000c2900551e

Master_Info_File: /usr/local/mysql-5.6.35/data/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for theslave I/O thread to update it

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

1 row in set (0.00 sec)

ERROR:

No query specified

mysql>

當紅色部分出現(xiàn)兩個yes之后斜棚,說明我們的主從配置正確,并且順利啟動该窗。

我們可以通過使用show

processlist\G命令來查看master及slave上線程的狀態(tài):

mysql>show processlist\G;

*************************** 1. row***************************

Id: 2

User: root

Host: localhost

db: NULL

Command: Sleep

Time: 2644

State:

Info: NULL

*************************** 2. row***************************

Id: 5

User: repl_user

Host: 192.168.10.72:18886

db: NULL

Command: Binlog Dump

Time: 924

State: Master has sent all binlog to slave; waiting for binlog to beupdated

Info: NULL

*************************** 3. row***************************

Id: 6

User: root

Host: localhost

db: NULL

Command: Query

Time: 0

State: init

Info: showprocesslist

3 rows in set (0.00 sec)

ERROR:

No query specified

mysql>

紅色部分為處理slave的I/O線程的連接

mysql>show processlist\G;

*************************** 1. row***************************

Id: 3

User: system user

Host:

db: NULL

Command: Connect

Time: 846

State: Waiting for master to send event

Info: NULL

*************************** 2. row***************************

Id: 4

User: system user

Host:

db: NULL

Command: Connect

Time: 846

State: Slave has read all relay log; waiting for the slave I/O thread toupdate it

Info: NULL

*************************** 3. row***************************

Id: 5

User: root

Host: localhost

db: NULL

Command: Query

Time: 0

State: init

Info: showprocesslist

3 rows in set (0.00 sec)

ERROR:

No query specified

紅色部分為I/O線程的狀態(tài)打肝,藍色部分為SQL線程的狀態(tài)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市挪捕,隨后出現(xiàn)的幾起案子粗梭,更是在濱河造成了極大的恐慌,老刑警劉巖级零,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件断医,死亡現(xiàn)場離奇詭異滞乙,居然都是意外死亡,警方通過查閱死者的電腦和手機鉴嗤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進店門斩启,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人醉锅,你說我怎么就攤上這事兔簇。” “怎么了硬耍?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵垄琐,是天一觀的道長。 經常有香客問我经柴,道長狸窘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任坯认,我火速辦了婚禮翻擒,結果婚禮上,老公的妹妹穿的比我還像新娘牛哺。我一直安慰自己陋气,他們只是感情好,可當我...
    茶點故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布引润。 她就那樣靜靜地躺著恩伺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪椰拒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天凰荚,我揣著相機與錄音燃观,去河邊找鬼。 笑死便瑟,一個胖子當著我的面吹牛缆毁,可吹牛的內容都是我干的。 我是一名探鬼主播到涂,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼脊框,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了践啄?” 一聲冷哼從身側響起浇雹,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屿讽,沒想到半個月后昭灵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年烂完,在試婚紗的時候發(fā)現(xiàn)自己被綠了试疙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,694評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡抠蚣,死狀恐怖祝旷,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情嘶窄,我是刑警寧澤怀跛,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站护侮,受9級特大地震影響敌完,放射性物質發(fā)生泄漏。R本人自食惡果不足惜羊初,卻給世界環(huán)境...
    茶點故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一滨溉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧长赞,春花似錦晦攒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贩据,卻和暖如春栋操,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饱亮。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工矾芙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人近上。 一個月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓剔宪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親壹无。 傳聞我的和親對象是個殘疾皇子葱绒,可洞房花燭夜當晚...
    茶點故事閱讀 43,580評論 2 349

推薦閱讀更多精彩內容