環(huán)境說明centos7.3、MySQL5.7 前言MySQL安裝參考之前的文章在centos7中安裝MySQL5.7 基本概念MySQL的主從復(fù)制功能是構(gòu)建大型、高性能應(yīng)用程序的基礎(chǔ)。將單個(gè)MySQL的數(shù)據(jù)分布到多個(gè)MySQL上,這種分布的機(jī)制,是通過將 MySQL主機(jī)的二進(jìn)制日志(binlog)復(fù)制到其它主機(jī)( Slave )上,并重新執(zhí)行一遍來實(shí)現(xiàn)的。復(fù)制過程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器,而另一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器。主MySQL將更新寫入binlog,從MySQL讀取binlog,并且重新執(zhí)行一遍,完成數(shù)據(jù)的復(fù)制。請(qǐng)注意,你對(duì)數(shù)據(jù)庫的更新操作,都需要在主服務(wù)器上執(zhí)行。 主從復(fù)制實(shí)現(xiàn)一、修改主(master)服務(wù)器 如果是按照我寫的文章安裝的MySQL,那么my.cnf配置文件在/etc/目錄下。如果不在,可以通過whereis命令搜索下 在my.cnf配置文件下添加如下配置 server_id=1 #指定MySQL的idlog-bin=mysql-bin #開啟二進(jìn)制日志文件 二、創(chuàng)建復(fù)制賬號(hào) 在主服務(wù)器中執(zhí)行該命令(這里允許了所有的地址訪問,建議設(shè)置成從服務(wù)器的地址) GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Abc123...'; 三、修改從(slave)服務(wù)器 server_id=2log-bin=mysql-binbinlog_do_db=db_test#表示要同步的數(shù)據(jù)庫 說明: binlog-ignore-db=test 表示不同步 test 數(shù)據(jù)庫 binlog_do_db=db_test#表示要同步的數(shù)據(jù)庫 四、重啟MySQL 主服務(wù)器和從服務(wù)器都重啟 service mysqld restart 五、查看主服務(wù)器狀態(tài) show master status 結(jié)果如下: 這里的信息需要記錄下來,在配置從服務(wù)器時(shí)候需要用到 六、配置從服務(wù)器(連接 Master 服務(wù)器) change master to master_host='192.168.74.129',master_user='replication',master_password='Abc123...',master_log_file='mysql-bin.000001',master_log_pos=2041; master_host是主服務(wù)器的ip master_port=3306(這里沒有配置,默認(rèn)3306) master_user:Master 服務(wù)器授權(quán)用戶,也就是 Master 前面創(chuàng)建的那個(gè)用戶 master_password:Master 服務(wù)器授權(quán)用戶對(duì)應(yīng)的密碼 master_log_file:Master binlog 文件名 master_log_pos:Master binlog 文件中的 Postion 值 關(guān)于position值,這里做一個(gè)說明:如果主服務(wù)器已經(jīng)是有很多數(shù)據(jù)了的,那就先需要備份主服務(wù)器的數(shù)據(jù)到從服務(wù)器中,然后再使用命令show master status記錄需要開始同步的位置。 七、開始復(fù)制 在從服務(wù)器中執(zhí)行 start slave 停止的命令是:stop slave; 八、查看從服務(wù)器狀態(tài) show slave status\G; 結(jié)果 上圖圈起來的兩個(gè)結(jié)果為yes表示主從復(fù)制配置成功了。 如果配置失敗,可以去MySQL的日志文件中查看失敗信息,也可以通過上述命令查看一個(gè)簡(jiǎn)要的錯(cuò)誤信息: 錯(cuò)誤信息 這是我剛剛配置主從服務(wù)器時(shí)報(bào)的錯(cuò),主要原因是MySQL服務(wù)器的server的UUID沖突了,原因是我的從服務(wù)器是從主服務(wù)器上復(fù)制過去的(VMware虛擬機(jī)拷貝)。到/var/lib/mysql/auto.cnf上修改即可。 驗(yàn)證主從結(jié)果現(xiàn)在的狀態(tài): 下面新建一個(gè)表,看看是否可以同步過去: 查看從服務(wù)器可以看到已經(jīng)同步過去了同步過去。至此,MySQL的主從復(fù)制功能已經(jīng)實(shí)現(xiàn)了 |
|