MySQL數據庫雙機熱備------主-從備份配置

MySQL數據庫雙機熱備------主-從備份配置

實驗環境:

主數據庫 192.168.1.1 centos6.5 x86_64 +MySQL5.5.35

從數據庫 192.168.1.2 WindowsXP x64 +MySQL5.5.13

一、安裝數據庫

1.在centos6.5 x86_64 上面安裝MySQL5.5.35數據庫,下載rpm包的形式安裝,在MySQL的官網上面下載。

MySQL-client-5.5.35-1.el6.x86_64.rpm

MySQL-server-5.5.35-1.el6.x86_64.rpm

2.WindowsXP x64 上面安裝MySQL5.5.13,軟件在網上獲取。

二、兩個數據庫都修改root密碼,並且開啓遠程訪問權限。

1.# mysqladmin -u root -ppassword newpassword

Windows上面的是在dos下面進入到C:\Program Files\MySQL\MySQL Server 5.5\bin目錄然後執行上面的命令。

2.mysql> grant all privileges on *.* to root@'% 'identified by 'newpassword';

mysql>flush privileges;

修改好之後,相互遠程測試一下看是否能夠相互遠程。

三、主數據庫配置

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

操作指令如下:

mysql> grant replication slave on*.* to bak@'192.168.1.2' identified by 'bak';

mysql> flush privileges;

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

# mysql –h192.168.1.1 –u bak –p回車之後要求輸入密碼,密碼爲bak,如果登陸成功,則可以繼續進行雙擊熱備,否則請找到問題並解決。

修改配置文件 /etc/my.cnf打開在[mysqld]下修改即可:

[mysqld]

server-id= 1

log-bin=mysql-bin              #啓用日誌文件

binlog-do-db= test#需要同步的數據庫

binlog-ignore-db= mysql #不需要同步的數據庫

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

#servicemysql restart

登陸mysql 輸入命令:

mysql>flush tables whit read lock;鎖表以便在同步之前寫數據進去。

mysql>show master status\G

**************************1.row*************************

File: mysql-bin.000003

Position: 1337

Binlog_Do_DB: test

Binlog_Ignore_DB: mysql

1 row in set(0.00 sec)

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

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

mysql>unlock tables;

QueryOK, 0 rows affected (0.00 sec)

四、從數據庫配置

修改配置文件 C:\Program Files\MySQL\MySQL Server 5.5 中的my.ini

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

[mysqld]

server-id = 2

log-bin=mysql-bin

replicate-do-db = test

replicate-ignore-db =mysql,information_schema,performance_schema

修改完之後,重啓windows上的mysql的服務。

Netmysql restart也可以手工去服務裏面找到mysql重啓。

五、利用change master 語句指定同步位置

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

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

mysql>change master to

>master_host='192.168.1.1',master_user='bak',master_password='bak',

> master_log_file=' ysql-bin.000003',master_log_pos=1337;

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

如果遇到問題不成功,則需要重新設置slave命令如下:

mysql>stop slave;

mysql>reset slave;

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

mysql>start slave;

六、測試

在從服務器上查看從服務器的狀態,用如下指令進行查看

mysql> show slave status\G  如果出現以下信息

151150388.jpg

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

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

在主數據庫的test庫中建表寫數據,查看從數據庫中是否在同步。

七、結論

主從數據庫的熱備操作比較複雜,遵循的原則是每一步必須都調試成功,否則下面就無法進行了。Mysql 5.x以上版本已經不支持在配置文件中指定主服務器相關選項。所以要使用changemaster語句,這一點很重要。


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