準(zhǔn)備:
兩臺(tái)MySQL服務(wù)器:
1然低、Master:192.168.172.110
2胁赢、Slave:192.168.172.111
端口都是3306
具體MySQL安裝可以參考:http://www.reibang.com/p/7e21d487bd07
配置詳解:
一、主庫(kù)配置:
1亦渗、編輯配置文件:
$ vim /etc/my.cnf
server-id=110 #設(shè)置主服務(wù)器的ID(不能和別的服務(wù)器重復(fù)挖诸,建議使用ip的最后一段)
innodb_flush_log_at_trx_commit=2 #可以配置的值:0/1/2; 0、效率最高法精,最不安全多律;1、最安全搂蜓,但是效率最低狼荞;2、安全和效率平衡的取舍帮碰,在服務(wù)器系統(tǒng)掛掉的情況下會(huì)丟失數(shù)據(jù)相味;
sync_binlog=1 #,值可設(shè)置 1殉挽、500丰涉、1000;可自己根據(jù)測(cè)試性能配置
log-bin=mysql-bin #binlog日志文件名
binlog-ignore-db=mysql # 表示不同步mysql庫(kù)
binlog-ignore-db=information_schema # 表示不同步information_schema庫(kù)
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
binlog-do-db=xxxx # 這個(gè)表示只同步某個(gè)庫(kù) (如果沒有此項(xiàng)斯碌,表示同步所有的庫(kù))
2一死、創(chuàng)建用于主從同步的賬戶:
#登錄MySQL
$ mysql -u root -p
mysql> create user 'sync'@'%' identified by 'Sync@0000'; # 5.7要求密碼必須含有大小寫英文,符號(hào)和數(shù)字
mysql> grant FILe on *.* to 'sync'@'192.168.172.111' identified by 'Sync@0000'; #賦予FILE權(quán)限傻唾,允許從從庫(kù)ip訪問主庫(kù)
mysql> grant replication slave on *.* to 'sync'@'192.168.172.111' identified by 'Sync@0000'; #賦予主從同步權(quán)限
mysql> flush privileges;
3摘符、重啟MySQL,使my.cnf 配置生效;查看主庫(kù)狀態(tài):
$ service mysqld restart #重啟MySQL
mysql -u root -p
mysql> show master status; #查看主庫(kù)的狀態(tài) file,position 這兩個(gè)值很有用逛裤,記一下;需要放到slave配置中
+--------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------------+----------+--------------+------------------+-------------------+
| mysql-bin.00001 | 156 | xxxx | | |
+--------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
二瘩绒、從庫(kù)配置:
1、編輯配置文件:
$ vim /etc/my.cnf
server-id=111
#log-bin=mysql-bin #從庫(kù)提高性能可以不開bin-log日志
replicate-ignore-db=mysql #配置不需要復(fù)制的庫(kù)mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate_do_db=python #標(biāo)記出需要同步的數(shù)據(jù)庫(kù)名,在多從配置時(shí)可以按需配置
innodb_flush_log_at_trx_commit=2 # 可以配置的值:0/1/2; 0带族、效率最高锁荔,最不安全;1蝙砌、最安全阳堕,但是效率最低;2择克、安全和效率平衡的取舍恬总,在服務(wù)器系統(tǒng)掛掉的情況下會(huì)丟失數(shù)據(jù);
sync_binlog=1000 # 每進(jìn)行n次事務(wù)提交之后肚邢,MySQL將binlog_cache中的數(shù)據(jù)強(qiáng)制寫入磁盤壹堰。
slave_parallel_workers=4 #根據(jù)實(shí)際情況決定開啟多少個(gè)線程用于主從復(fù)制
slave_parallel_type=logical_clock #基于組提交的并行復(fù)制方式
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
2、配置完成后骡湖,重啟從庫(kù)的MySQL贱纠;
$ service mysqld restart #重啟MySQL
$ mysql -u root -p #登錄mysql
mysql> stop slave; #關(guān)閉從庫(kù)
mysql> change master to master_host='192.168.172.110', master_user='sync' ,master_password='Sync@0000', master_log_file='mysql-bin.00001' ,master_log_pos=156; #配置主庫(kù)信息
mysql> start slave; #開啟從庫(kù)
mysql> show slave status \G; #Slave_IO_Running,Slave_SQL_Running 都為Yes的時(shí)候表示配置成功
3、驗(yàn)證主從:
可以在主庫(kù)上對(duì)數(shù)據(jù)進(jìn)行操作,再在從庫(kù)上刷新是否同步;
MySQL的主從配置很簡(jiǎn)單??响蕴,盡情的體驗(yàn)吧谆焊!