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