MySQL中怎么配置主從復(fù)制,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司企業(yè)建站,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁(yè)設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營(yíng)經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁(yè)中充分展現(xiàn),通過(guò)對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。
1.下載mysql安裝包(我用的是解壓版的mysql-5.7),解壓成兩份分別命名為MySQLmaster和MySQLslave
2.修改master的my.ini文件
[mysqld] #端口 port = 3306 basedir=D:/hlb/ruanjian/mysql5.7_master/mysql-5.7.25-winx64 datadir=D:/hlb/ruanjian/mysql5.7_master/mysql-5.7.25-winx64/data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #需要備份的數(shù)據(jù)庫(kù) binlog-do-db=test #不需要備份的數(shù)據(jù)庫(kù) #binlog-ignore-db=mysql #注:bin-do-db,bin-ignore-db 為互斥關(guān)系,只需設(shè)置其中一項(xiàng)即可 #開(kāi)啟二進(jìn)制日志 log-bin=mysql-bin #服務(wù)id server-id=1 [mysql] default-character-set=utf8
3.修改slave的my.ini文件
[mysqld] port = 3307 basedir=D:/hlb/ruanjian/mysql5.7_slave/mysql-5.7.25-winx64 datadir=D:/hlb/ruanjian/mysql5.7_slave/mysql-5.7.25-winx64/data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #服務(wù)器id server_id = 2 #開(kāi)啟二進(jìn)制日志(從服務(wù)器不是必須要開(kāi)啟二進(jìn)制日志) log-bin=mysql-bin [mysql] default-character-set=utf8
4.mysql解壓版安裝
)1.以管理員身份打開(kāi)cmd.exe )2.cd D:\hlb\ruanjian\mysql5.7_slave\mysql-5.7.25-winx64\bin )3.mysqld -install mysqlmaster(或者是mysqlslave) )4.mysqld --initialize-insecure --user=mysql(此語(yǔ)句用于初始化MySQL并生成data目錄) net start mysql 啟動(dòng)MySQL命令 net stop mysql 停止MySQL命令 mysql -uroot -P3306(或者-P3307)進(jìn)入mySQL命令行
5.配置master Mysql。
binlog-do-db(前面修改master 的my.ini文件有此參數(shù))用于指定需要同步的數(shù)據(jù)庫(kù),binlog-ignore-db指定不需要同步的數(shù)據(jù)庫(kù),如果這兩個(gè)參數(shù)都不設(shè)置,則從服務(wù)器會(huì)復(fù)制主服務(wù)器的所有數(shù)據(jù)庫(kù)。
一般不用root賬號(hào)作同步賬號(hào),為此,我們需要在主服務(wù)器上創(chuàng)建一個(gè)新的用戶(如 user01,密碼為123456)。
這里我們用命令行的方式創(chuàng)建,方法如下:
)1.創(chuàng)建新用戶: create user 'user01'@'127.0.0.1' identified by '123456';(@后面的ip地址為允許連接的客戶端的ip地址。) )2.給新用戶配置主從復(fù)制的權(quán)限: grant replication slave on *.* to 'user01'@'127.0.0.1' identified by '123456'; (@后面的ip地址為允許連接的客戶端的ip地址,如果改為 '%',就表示客戶端沒(méi)有ip地址的限制) )3.查看主服務(wù)器的 master 狀態(tài):mysql> show master status;(從配置會(huì)用到里面的信息)
6.配置slave Mysql
連接MySQL從服務(wù)器:
mysql -uroot -p -P3307
配置復(fù)制的參數(shù):
change master to master_host='127.0.0.1',master_user='user01',master_password='123456',master_port=3306,master_log_file='mysql-bin.000008',master_log_pos=498;
啟動(dòng)從服務(wù)器的slave復(fù)制功能:
start slave;
查看從服務(wù)器的slave狀態(tài):
mysql> show slave status \G
如果 Slave_IO_Running 和 Slave_SQL_Running 的值都為 Yes,則說(shuō)明主從復(fù)制的所有配置已成功,即從服務(wù)器已經(jīng)可以自動(dòng)與主服務(wù)器的數(shù)據(jù)庫(kù)數(shù)據(jù)實(shí)現(xiàn)同步了。
此后,只要主服務(wù)器的數(shù)據(jù)有更新(比如:在 test數(shù)據(jù)庫(kù)中新建了一張表或者表中的數(shù)據(jù)發(fā)生了變化),從服務(wù)器都會(huì)自動(dòng)與主服務(wù)器保持一致。
但如果有人刻意改變了從服務(wù)器的數(shù)據(jù),主服務(wù)器中的數(shù)據(jù)并不會(huì)同步更新,除非我們把這兩個(gè)MySQL服務(wù)器設(shè)置為互為主從。
insert into user values(1,'aa') 主MySQL測(cè)試即可
截圖效果如下:
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。