mysql主從複製+主備切換

蹦擦擦擦發表於2018-01-05


簡介

使用mycat進行主從切換,當一臺mysql伺服器當機之後,mycat會切換至另一臺進行連線,兩臺mysql互為主從,這樣可以使兩臺mysql伺服器互相備份,使其資料一致。

 

1.   伺服器分配

Mycat  192.168.1.100:8066

Mysql1 192.168.1.101:3306

Mysql2 192.168.1.102:3306

 

2.   安裝所需的程式

系統版本CentOS-7-1611

1.      Jdk1.7

2.      Mycat1.4

3.      Mysql5.7

3.   Mycat伺服器安裝配置

a.    安裝jdk,配置jdk環境變數

      略。

b.    安裝mycat

      1. tar –xzvf myscatTar包,解壓完成後複製到 /usr/mycat路徑

      2. 配置環境變數,vi /etc/profile,增加以下

export MYCAT_HOME=/usr/mycat

export PATH=$PATH:$MYCAT_HOME/bin

生效環境配置檔案source /etc/profile

c.     修改配置檔案

1.       修改server.xml,路徑/usr/mycat/conf

設定登入名密碼,邏輯表名稱

    <user name="root">

              <propertyname="password">123456</property>

      <!—邏輯表名稱,mycat的表名à

              <propertyname="schemas">developdatabase</property>

    </user>

2.       配置schema.xml,路徑/usr/mycat/conf

     

d.    修改防火牆,允許mycat的埠被外界訪問

   firewall-cmd --zone=public --add-port=8066/tcp–permanent

   firewall-cmd –reload

4. mysql伺服器安裝配置

   Mysql安裝略

a.    修改mysql配置檔案my.conf(兩臺mysql伺服器都需要修改)

server_id=1

log-bin=mysql-bin

relay_log=mysql-relay-bin

 

增加上面配置,兩臺mysql伺服器的server_id不能重複

b.    Mysql  master配置(主服務配置)

登入192.168.1.101mysql伺服器

連線mysql:mysql –uroot –p

 

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup@’192.168.1.102’ IDENTIFIED BY ‘123456’;

FLUSH PRIVILEGES;  生效建立的使用者

建立一個帳戶backup,並且只能允許從192.168.1.102這個地址上來登陸,密碼是123456。

 

重啟master,執行SHOWMASTER STATUS;,輸出如下:


c.     Mysql  slave配置(從服務配置)

     登入192.168.1.102mysql伺服器

     連線mysql:mysql –uroot –p

 

     mysql> CHANGE MASTER TO MASTER_HOST='mastrt伺服器地址',

    -> MASTER_USER='master伺服器使用者,使用剛才建立的backup',

    ->MASTER_PASSWORD='密碼',

    -> MASTER_LOG_FILE='mastershow master statusfile,實際填寫mysql-bin.000009',

-> MASTER_LOG_POS=0;   mastershow master statusPosition

使用SHOW SLAVE STATUS\G語句檢視slave的設定是否正確


 

這樣slave 在這裡主要是看:

                   Slave_IO_Running=Yes

                   Slave_SQL_Running=Yes

slave的I/O和SQL執行緒都已經開始執行,而且Seconds_Behind_Master不再是NULL。日誌的位置增加了,意味著一些事件被獲取並執行了。就連線上master了。

master上輸入showprocesslist\G


3. row 就是slave的連線

因為我們的配置是互為主從,只需要把以上的操作,兩臺伺服器反過來再進行操作一遍就好了。

 

客戶端連線的時候只需要連線192.168.1.100:8066

相關文章