mysql雙機熱備配置

我做的雙機熱備是參考一下文章完成的,我的mysql版本是5.5.25也同樣適用(主從模式)

1. 準備服務器

 由於Mysql不同版本之間的(二進制日誌)binlog格式可能會不太一樣,因此最好的搭配組合是主(Master)服務器的Mysql版本和從(Slave)服務器版本相同或者更低,主服務器的版本肯定不能高於從服務器版本,本次我用於測試的兩臺服務器版本都是Mysql-5.5.17

2. Mysql 建立主-從服務器雙機熱備配置步驟

A服務器(主服務器Master):59.151.15.36

B服務器(從服務器Slave):218.206.70.146

主從服務器的Mysql版本皆爲5.5.17

Linux環境下

將主服務器需要同步的數據庫內容進行備份一份,上傳到從服務器上,保證始初時兩服務器中數據庫內容一致。

不過這裏說明下,由於我是利用Mysql在安裝後就有的數據庫test進行測試的,所以兩臺服務器裏面是沒有建立表的,只不分別在test裏面建立了同樣的一張空表tb_mobile;

Sql語句如下:

mysql> create table tb_mobile( mobile VARCHAR(20) comment'手機號碼', time timestamp DEFAULT now() comment'時間' );

2.2 主服務器Master配置

2.2.1 創建同步用戶

進入mysql操作界面,在主服務器上爲從服務器建立一個連接帳戶,該帳戶必須授予REPLICATION SLAVE權限。因爲從mysql版本3.2以後就可以通過REPLICATION對其進行雙機熱備的功能操作。

操作指令如下:

mysql> grant replication slave on *.* to 'replicate'@'218.206.70.146' identified by '123456';

mysql> flush privileges;

創建好同步連接帳戶後,我們可以能過在從服務器(Slave)上用replicat帳戶對主服務器(Master)數據庫進行訪問下,看下是否能連接成功。

在從服務器(Slave)上輸入如下指令:

[root@YD146 ~]# mysql -h59.151.15.36 -ureplicate -p123456

如果出現下面的結果,則表示能登錄成功,說明可以對這兩臺服務器進行雙機熱備進行操作。

點擊查看原圖

2.2.2 修改mysql配置文件

如果上面的準備工作做好,那邊我們就可以進行對mysql配置文件進行修改了,首先找到mysql日誌所有在目錄,一般在安裝好mysql服務後,都會將配置文件複製一一份出來放到/ect目錄下面,並且配置文件命名爲:my.cnf。即配置文件準確目錄爲/etc/my.cnf

找到配置文件my.cnf打開後,在[mysqld]下修改即可:

[mysqld]

server-id = 1

log-bin=mysql-bin                //其中這兩行是本來就有的,可以不用動,添加下面兩行即可

binlog-do-db = test

binlog-ignore-db = mysql

2.2.3 重啓mysql服務

修改完配置文件後,保存後,重啓一下mysql服務,如果成功則沒問題。

點擊查看原圖

2.2.4 查看主服務器狀態

進入mysql服務後,可通過指令查看Master狀態,輸入如下指令:

點擊查看原圖

注意看裏面的參數,特別前面兩個FilePosition,在從服務器(Slave)配置主從關係會有用到的。

注:這裏使用了鎖表,目的是爲了產生環境中不讓進新的數據,好讓從服務器定位同步位置,初次同步完成後,記得解鎖。

點擊查看原圖

2.3 從服務器Slave配置

2.3.1修改配置文件

因爲這裏面是以主-從方式實現mysql雙機熱備的,所以在從服務器就不用在建立同步帳戶了,直接打開配置文件my.cnf進行修改即可,道理還是同修改主服務器上的一樣,只不過需要修改的參數不一樣而已。如下:

[mysqld]

server-id = 2

log-bin=mysql-bin

replicate-do-db = test

replicate-ignore-db = mysql,information_schema,performance_schema

2.3.2重啓mysql服務

修改完配置文件後,保存後,重啓一下mysql服務,如果成功則沒問題。

點擊查看原圖

2.3.3change mster 語句指定同步位置

這步是最關鍵的一步了,在進入mysql操作界面後,輸入如下指令:

mysql>stop slave;          //先停步slave服務線程,這個是很重要的,如果不這樣做會造成以下操作不成功。

mysql>change master to

>master_host='59.151.15.36',master_user='replicate',master_password='123456',

> master_log_file=' mysql-bin.000016 ',master_log_pos=107;

注:master_log_file, master_log_pos由主服務器(Master)查出的狀態值中確定。也就是剛剛叫注意的。master_log_file對應File, master_log_pos對應PositionMysql 5.x以上版本已經不支持在配置文件中指定主服務器相關選項。

遇到的問題,如果按上面步驟之後還出現如下情況:

點擊查看原圖

則要重新設置slave。指令如下

mysql>stop slave;

mysql>reset slave;

之後停止slave線程重新開始。成功後,則可以開啓slave線程了。

mysql>start slave;

2.3.4查看從服務器(Slave)狀態

用如下指令進行查看

mysql> show slave status\G;

點擊查看原圖

查看下面兩項值均爲Yes,即表示設置從服務器成功。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

2.4 測試同步

之前開始已經說過了在數據庫test只有一個表tb_mobile沒有數據,我們可以先查看下兩服務器的數據庫是否有數據:

Master:59.151.15.36

點擊查看原圖

Slave:218.206.70.146

點擊查看原圖

好了,現在可以在Master服務器中插入數據看下是否能同步。

Master:59.151.15.36

 

點擊查看原圖

 

Slave:218.206.70.146

點擊查看原圖

 

可以從上面兩個截圖上看出,在Master服務器上進行插入的數據在Slave服務器可以查到,這就表示雙機熱備配置成功了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章