文章目錄
以下的主從復(fù)制搭建的環(huán)境介紹: (1)主機是在Windows下搭建的數(shù)據(jù)庫 (2)從機是在centos7下搭建的數(shù)據(jù)庫 (3)主機和從機是在同一個網(wǎng)關(guān)下 一、復(fù)制的基本原理1、slave會從master讀取binlog來進行數(shù)據(jù)同步2、三步驟+原理圖MySQL復(fù)制過程分成三步: (1)master將改變記錄到二進制日志==(binary log)==。這些記錄過程叫做二進制日志事件,binary log events; (2)slave將master的binary log events拷貝到它的中繼日志==(relay log)==; (3)slave重做中繼日志中的事件,將改變應(yīng)用到自己的數(shù)據(jù)庫中。 MySQL復(fù)制是異步的且串行化的 注意: (1)從機開始復(fù)制的內(nèi)容是連接到主機之后的內(nèi)容 (2)redis的主從復(fù)制是直接復(fù)制主機上的所有內(nèi)容,只要連接上就是復(fù)制所有的內(nèi)容!這是mysql和redis的主從復(fù)制的區(qū)別 (3)主從復(fù)制是靠日志文件進行操作的 二、復(fù)制的基本原則(1)每個slave只有一個master (2)每個slave只能有一個唯一的服務(wù)器ID (3)每個master可以有多個salve 三、復(fù)制的最大問題MySQL主從復(fù)制的最大問題是**“延時”** 建議: 我們在操作數(shù)據(jù)庫的時候,尤其是插入數(shù)據(jù)的操作,不能剛插進去就取出(雖然時間很短),最好中間有其它事情執(zhí)行之后再進行操作。 四、一主一從常見配置1、mysql版本一致且后臺以服務(wù)運行2、主機、從機都配置在==[mysqld]==結(jié)點下,都是小寫3、主機(Windows10)修改my.ini配置文件(1)主服務(wù)器唯一ID server-id=1 (2)啟用二進制日志 log-bin=自己本地的路徑/data/mysqlbin log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin (3)設(shè)置不要復(fù)制的數(shù)據(jù)庫 binlog-ignore-db=mysql (4)設(shè)置需要復(fù)制的數(shù)據(jù)庫 binlog-do-db=需要復(fù)制的主數(shù)據(jù)庫名字(配置完主機和從機之后,再配,記住這個地方別忘了) (5)設(shè)置logbin格式 binlog_format=STATEMENT(默認) binlog_format=STATEMENT(默認) binlog_format=ROW 4、 mysql主從復(fù)制起始時,從機不繼承主機數(shù)據(jù)5、從機(centos7)配置文件修改my.cnf的[mysqld]欄位下設(shè)置下面連個地方:
6、 因修改過配置文件,請主機+從機都重啟后臺mysql服務(wù)
7、主機從機都關(guān)閉防火墻(1)windows手動關(guān)閉 第一步: 安全工具關(guān)上:騰訊管家 ? 360不影響 第二步: (2)Linux關(guān)閉防火墻 關(guān)閉虛擬機linux防火墻 systemctl stop firewalld 8、在Windows主機上建立帳戶并授權(quán)slave
show master status; 記錄下File和Position的值,后面需要用到 執(zhí)行完此步驟后不要再操作主服務(wù)器MYSQL,防止主服務(wù)器狀態(tài)值變化 9、在Linux從機上配置需要復(fù)制的主機
主機的 IP要和從機的 IP在同一個網(wǎng)關(guān)之下: 主機(Windows10)從機(centos7)
start slave; show slave status\G; 下面兩個參數(shù)都是Yes,則說明主從配置成功! Slave_IO_Running: Yes Slave_SQL_Running: Yes 10、主機新建庫、新建表、insert記錄,從機復(fù)制11、如何停止從服務(wù)復(fù)制功能stop slave; 12、如何重新配置主從stop slave; reset master; 13、注意mysql和redis的不同之處是,mysql是復(fù)制連接主機之后的內(nèi)容,redis是復(fù)制主機上的所有內(nèi)容 |
|