Windows下MySql數據庫單向主從備份
一、目的:將主服務器中的MySql數據庫同步到從服務器中,
使得對主服務器的操作可以即時更新到從服務器,避免主服務器因環境或者網絡異常一時無法使用,
達到備份效果。
二、環境: www.2cto.com
主從服務器操作系統、數據庫版本均相同,具體如下:
操作系統:Windows 2003 Server R2
MySql數據庫版本:5.0.51b
主服務器(用A代替)IP地址:192.168.4.100
從服務器(用B代替)IP地址:192.168.4.101
三、配置過程:
1、在A創建遠程訪問備份賬戶。
在A的MySql數據庫中建立一個備份賬戶,命令如下:
mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO july@'192.168.4.101'
IDENTIFIED BY '123456';
mysql> Flush privileges;
mysql> Quit;
語句解釋:
第一句中*.*表示所有數據庫,如果要對某個數據庫備份的話,假如數據庫名稱為some,
則要換成some.*,其中 TO july@’192.168.4.101’,july為遠程訪問用戶名,
IP地址為遠程訪問IP,BY '123456'中123456為遠程訪問密碼;
第二句語句執行後使得遠程訪問用戶創建生效;
www.2cto.com
執行說明:
執行上述語句後,若要看遠程訪問用戶是否已經創建成功,執行以下語句:
mysql> use mysql;
mysql> select host,user from user;
用戶列表中多了一條
+------------------------------------+------------------+
|host |user |
+------------------------------------+------------------+
|192.168.4.101 |july |
+------------------------------------+------------------+
至此,說明遠程訪問用戶已經創建成功。
2、關閉A的MySql服務並拷貝數據到B。
關閉A的Mysql服務,將A中的數據拷貝到B中,使得A、B服務器初始數據完全相同,
並且在同步備份之前禁止對服務器中進行數據庫寫入操作,以保證A、B服務器的初始數據完全相同。
3、修改A中my.ini配置信息
打開my.ini文件,在[mysqld]下添加以下內容(#內容為注釋):
# server-id:A服務器的ID值
server-id=10
#log-bin:二進制變更日志
log-bin=c:\log/log-bin.log
4、重啟A服務器。
5、關閉B服務器,對B的my.ini進行相關配置
此處需要注意:
由於設置了slave的配置信息,mysql在數據庫data目錄下生成master.info,
所以如有要修改相關slave的配置要先刪除該文件,否則修改的配置不能生效。
打開B的my.ini配置文件,在[mysqld]中添加以下內容:
#B服務器ID值 www.2cto.com
server-id=11
#遠程訪問IP地址
master-host=192.168.4.100
#遠程訪問用戶名
master-user=july
#遠程訪問用戶密碼
master-password=123456
#主服務器端口(默認為3306,此處要注意主服務器端口是否因為防火牆被禁止)
master-port=3306
#同步時間間隔為60秒
master-connect-retry=60
#設置要同步備份的數據庫,此處數據庫為some
replicate-do-db=some
6、重啟B服務器,到此已完成主從備份,如果有錯誤,可以通過mysql_error.log進行查看。
作者 此中_從容