一. 環(huán)境需要
服務(wù)器:
主庫服務(wù)器: mysql-server-00
從庫服務(wù)器: mysql-server-01
二. 數(shù)據(jù)庫安裝
請移步: http://www.reibang.com/p/3d7ef958cac7
三. 開始配置主庫備份
一揪阶、主庫配置:
1、編輯配置文件:
$ vim /etc/my.cnf
# 設(shè)置主服務(wù)器的id(不能和別的服務(wù)器重)
server-id = 1
# 可以配置的值:0/1/2; 0剔交、效率最高腕唧,最不安全谋梭;1、最安全,但是效率最低蔫缸;2、安全和效率平衡的取舍贺嫂,在服務(wù)器系統(tǒng)掛掉的情況下會(huì)丟失數(shù)據(jù)滓鸠;
innodb_flush_log_at_trx_commit = 1
# 值可設(shè)置 1、500第喳、1000糜俗;可自己根據(jù)測試性能配置
sync_binlog = 1
# binlog日志文件名
log-bin = mysql-bin
# 表示不同步mysql庫
binlog-ignore-db = mysql
# 表示不同步information_schema庫
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
binlog-ignore-db = sys
# 這個(gè)表示只同步某個(gè)庫 (如果沒有此項(xiàng),表示同步所有的庫)
binlog-do-db = xxxx
2曲饱、創(chuàng)建用于主從同步的賬戶:
# 登錄MySQL
$ mysql -u root -p
# 創(chuàng)建用戶和密碼
mysql> create user 'copy'@'%' identified by '123456';
# 賦予FILE權(quán)限悠抹,允許從從庫ip訪問
mysql> grant FILe on *.* to 'copy'@'mysql-server-01' identified by '123456';主庫
# 賦予主從同步權(quán)限
mysql> grant replication slave on *.* to 'copy'@'192.168.172.111' identified by '123456';
mysql> flush privileges;
3、重啟MySQL渔工,使my.cnf 配置生效锌钮;查看主庫狀態(tài):
$ service mysql restart
$ mysql -u root -p
$ mysql> show master status;
#查看主庫的狀態(tài) file, position 這兩個(gè)值后續(xù)要用
+--------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 154 | xxxx | | |
+--------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
二、從庫配置:
1引矩、編輯配置文件:
$ vim /etc/my.cnf
server-id = 2
# 配置不需要復(fù)制的庫mysql
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = sys
# 標(biāo)記出需要同步的數(shù)據(jù)庫名,在多從配置時(shí)可以按需配置
replicate_do_db = tmall
# 可以配置的值:0/1/2; 0梁丘、效率最高,最不安全旺韭;1氛谜、最安全,但是效率最低区端;2值漫、安全和效率平衡的取舍,在服務(wù)器系統(tǒng)掛掉的情況下會(huì)丟失數(shù)據(jù)织盼;
innodb_flush_log_at_trx_commit = 1
# 每進(jìn)行n次事務(wù)提交之后杨何,MySQL將binlog_cache中的數(shù)據(jù)強(qiáng)制寫入磁盤。
sync_binlog = 1000
# 根據(jù)實(shí)際情況決定開啟多少個(gè)線程用于主從復(fù)制
slave_parallel_workers = 4
# 基于組提交的并行復(fù)制方式
slave_parallel_type = logical_clock
master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = ON
2沥邻、配置完成后危虱,重啟從庫的MySQL:
$ service mysql restart
# 登錄mysql
$ mysql -u root -p
# 關(guān)閉從庫
mysql> stop slave;
# 配置主庫信息 這里就用到主庫 show master status 那里的兩個(gè)字段
mysql> change master to master_host='mysql-server-00', master_user='copy' ,master_password='123456', master_log_file='mysql-bin.000002' ,master_log_pos=154;
# 開啟從庫
mysql> start slave;
# Slave_IO_Running, Slave_SQL_Running 都為Yes的時(shí)候表示配置成功
mysql> show slave status \G;
3、驗(yàn)證主從:
操作主庫, 建庫, 建表, 插入數(shù)據(jù), 檢查從庫是否同步, over, perfect ~~