本文主要給大家介紹MySQL 5.5主從復(fù)制實(shí)戰(zhàn)部署演義,希望可以給大家補(bǔ)充和更新些知識(shí),如有其它問題需要了解的可以持續(xù)在創(chuàng)新互聯(lián)行業(yè)資訊里面關(guān)注我的更新文章的。
創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為雞冠等服務(wù)建站,雞冠等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為雞冠企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
兩臺(tái)安裝好的MySQL 5.5的數(shù)據(jù)庫。以Master與Slave區(qū)分
Master:
IP地址(172.16.1.210):
[root@Qinglin-A /]# ifconfig eth0 eth2 Link encap:Ethernet HWaddr 00:0C:29:B4:0A:5D inet addr:192.168.1.210 Bcast:172.16.1.255 Mask:255.255.255.0
MySQL版本:
[root@Qinglin-A /]# mysql -V mysql Ver 14.14 Distrib 5.5.32, for Linux (x86_64) using readline 5.1
Slave:
IP地址(172.16.1.220):
[root@Qinglin-B /]# ifconfig eth0 eth2 Link encap:Ethernet HWaddr 00:0C:29:0E:20:1D inet addr:192.168.1.220 Bcast:172.16.1.255 Mask:255.255.255.0
MySQL版本:
[root@Qinglin-B /]# mysql -V mysql Ver 14.14 Distrib 5.5.32, for Linux (x86_64) using readline 5.1
MySQL 主從同步都是異步的復(fù)制方式,即不是嚴(yán)格實(shí)時(shí)同步的數(shù)據(jù)同步。 2、Slave設(shè)置server-id 3、Master和Slave同步重啟mysql 4、Master效驗(yàn)bin-log與server-id 5、master創(chuàng)建并授權(quán)網(wǎng)段訪問的從庫個(gè)帳戶,使slave可以訪問master 6、記錄Master的binlog位置與點(diǎn),請(qǐng)切記下列標(biāo)黃處,后期會(huì)用到。 7、鎖表備份Master的所有數(shù)據(jù)庫 8、slave恢復(fù)數(shù)據(jù)庫,因?yàn)槲壹哟驜參數(shù),所以不需要指定庫恢復(fù) 9、導(dǎo)入slave的master信息(slave操作) 退出上面執(zhí)行的mysql 界面,重新使用root登錄Slaver的mysql界面執(zhí)行導(dǎo)入Master信息操作。 10、slave查看master info信息 11、slave開啟slave開啟 12、檢查,有兩個(gè)標(biāo)黃的OK,則是正常啟動(dòng)(Seconds_Behind_Master 0 是落后主庫的秒數(shù),0是正確) 1、Master創(chuàng)建一個(gè)數(shù)據(jù)庫 2、slave 查看從庫relay文件中是否存在主庫創(chuàng)建的create數(shù)據(jù)庫qinglin 3、檢查salve是否已經(jīng)創(chuàng)建了一個(gè)數(shù)據(jù)庫 4 rows in set (0.00 sec) 看了以上關(guān)于MySQL 5.5主從復(fù)制實(shí)戰(zhàn)部署演義,希望能給大家在實(shí)際運(yùn)用中帶來一定的幫助。本文由于篇幅有限,難免會(huì)有不足和需要補(bǔ)充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時(shí)售前售后,隨時(shí)幫您解答問題的。
實(shí)戰(zhàn)前必須知道的知識(shí)
a. 主從復(fù)制是異步的,邏輯的SQL語句級(jí)的復(fù)制。
b. 同步時(shí),主庫有一個(gè)IO線程,從庫有兩個(gè)線程,IO和SQL線程。
c. 實(shí)現(xiàn)主從復(fù)制的必要條件,主庫要開啟binlog功能。
1、Master開啟binlog,并設(shè)置server-id
注:server id 是避免不同機(jī)器或?qū)嵙蠭D重復(fù),選擇0[root@Qinglin-A /]# vim /etc/my.cnf
server-id = 1
log-bin=mysql-bin
[root@Qinglin-A /]# egrep "log-bin|server-id" /etc/my.cnf
server-id = 1
log-bin=mysql-bin
注:Slave的binlog是不開啟的,如果開啟那就是雙主同步,性能很一般。[root@Qinglin-B /]# vim /etc/my.cnf
server-id = 3
[root@Qinglin-B /]# egrep "log-bin|server-id" /etc/my.cnf
server-id = 3
#log-bin=mysql-bin
[root@Qinglin-A /]# /etc/init.d/mysql restart
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!
[root@Qinglin-B /]# /etc/init.d/mysql restart
Shutting down MySQL. SUCCESS!
Starting MySQL.. SUCCESS!
注:slave只需要查看server-id就可以mysql> show variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like "server_id";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
下列為創(chuàng)建Slave用戶,刷新權(quán)限,并查看用戶權(quán)限。mysql> grant replication slave on *.* to 'rep'@'192.168.1.%' identified by'123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for rep@'192.168.1.%';
+--------------------------------------------------------------------------------------------------------------------------+
| Grants for rep@192.168.1.% |
+--------------------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'rep'@'192.168.1.%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
+--------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 332 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
-A 備份全部數(shù)據(jù)庫
-B 導(dǎo)出幾個(gè)數(shù)據(jù)庫
-F –flush-logs 開始導(dǎo)出之前刷新日志 注意:假如一次導(dǎo)出多個(gè)數(shù)據(jù)庫(使用選項(xiàng)–databases或者–all-databases),將會(huì)逐個(gè)數(shù)據(jù)庫刷新日志
-x 鎖表,保證數(shù)據(jù)的一致性
–events 導(dǎo)出事件
–master-data=2 如果=2就生成就是注釋,不執(zhí)行。[root@Qinglin-A /]# mysqldump -uroot -p'123456' --events -A -B -F --master-data=2 -x |gzip >/home/bak_`date +%F`.sql.gz
[root@Qinglin-A /]# ll /home/bak_2016-08-02.sql.gz
-rw-r--r-- 1 root root 144365 Aug 2 15:16 /home/bak_2016-08-02.sql.gz
注:從master的備份文件到slave可以考慮用scp傳到slave中,這里不做演示。[root@Qinglin-B guanqinglin]# gzip -d bak_2016-08-02.sql.gz
[root@Qinglin-B guanqinglin]# ls
bak_2016-08-02.sql
[root@Qinglin-B guanqinglin]# mysql -uroot -p123456
操作前,請(qǐng)使用如下方法測試一下,用戶和遠(yuǎn)程登陸是否OK,執(zhí)行如下命令,登錄到那mysq>界面為成功。[root@Qinglin-B /]# mysql -h 192.168.1.210 -urep -p123456
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.5.32-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
[root@Qinglin-B /]# mysql -uroot -p123456
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.32 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.210',
-> MASTER_PORT=3306,
-> MASTER_USER='rep',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=332;
Query OK, 0 rows affected (0.12 sec)
[root@Qinglin-B /]# cat /application/mysql/data/master.info
18
mysql-bin.000001
332
192.168.1.210
rep
123456
3306
60
0
0
1800.000
0
[root@Qinglin-B /]# mysql -uroot -p123456
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.5.32 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
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.1.210
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 107
Relay_Log_File: Qinglin-B-relay-bin.000004
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-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: 107
Relay_Log_Space: 456
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: 1
1 row in set (0.00 sec)
三、測試環(huán)節(jié)
mysql> create database qinglin;
Query OK, 1 row affected (0.09 sec)
注:下列是截取的內(nèi)容[root@Qinglin-B data]# mysqlbinlog Qinglin-B-relay-bin.000004
SET @@session.collation_database=DEFAULT/*!*/;
create database qinglin
/*!*/;
DELIMITER ;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| qinglin |
+--------------------+
網(wǎng)站名稱:MySQL5.5主從復(fù)制實(shí)戰(zhàn)部署演義
文章位置:http://weahome.cn/article/jecgis.html