Mysql 主從數據庫

MYSQL主從數據庫同步備份配置
1、準備
用兩臺服務器作測試:
Master Server: 172.16.0.180/Linux/MYSQL 5.1.41
Slave Server: 172.16.0.181/Linux/MYSQL 5.1.41mysql

作主從服務器的原則是,MYSQL版本要相同,若是不能知足,最起碼從服務器的MYSQL的版本必須高於主服務器的MYSQL版本sql

2、配置master服務器
1. 登陸Master服務器,編輯my.cnf
#vim /etc/my.cnf
在[mysqld]段添加如下內容:數據庫

[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=wordpress
binlog-ignore-db=mysql,testubuntu

解釋:log-bin項是讓Master服務器記錄二進制日誌這個是必須的;
server-id=master_id 其中master_id必須爲1到232–1之間的一個正整數值;
binlog-do-db=database 是要記錄日誌的數據庫;
binlog-ignore-db 是不要記錄日誌的數據庫名,多個數據庫中間用逗號(,)隔開;vim

2.從master服務器添加要從slave服務器訪問master服務器的有權限的賬號,看下面命令就知道了:服務器

mysql> GRANT REPLICATION SLAVE ON *.* TO backup@172.16.0.181 IDENTIFIED BY ‘backuppassword’;wordpress

格式:mysql> GRANT REPLICATION SLAVE ON *.*
-> TO ‘賬號’@’從服務器IP或主機名’ IDENTIFIED BY ‘密碼’;
(說明:ubuntu系統先要開啓數據庫遠程鏈接配置)
3. 重起Mysql測試

4. 備份master數據庫數據命令行

# mysqldump –master-data extmail > extmail_backup_20071120.sql日誌

要加–master-data 選項,這裏備份master服務器的數據,後面要導入slave服務器。

5. 察看Master狀態

mysql> show master status;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000002 |       79 | extmail      | mysql,test       |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

3、配置slave服務器
1. 編輯my.cnf
# vim /etc/my.cnf

在[mysqld]段添加如下內容:

server-id=2
master-host=172.16.0.180
master-port=3306
master-user=backup
master-password=backuppassword
master-connect-retry=60

解釋:
slave服務器的server-id不能與master相同,多臺slave之間server-id也不能相同。
master-host 是 master服務器的主機名或者IP地址
master-user和master-password是前面咱們在master上建用戶名和密碼
master-connect-retry 是若是從服務器發現主服務器斷掉,從新鏈接的時間差

2. 把從主數據庫服務器備份出來的數據庫導入到從服務器中,也就是咱們前面的extmail_backup_20071120.sql

# mysqladmin create extmail
# mysql extmail < extmail_backup_20071120.sql

3. 重起mysql服務器
4. 中止slave服務,設置主服務器的各類參數

mysql> slave stop;
mysql> change master to MASTER_HOST=’172.16.0.180′, MASTER_USER=’backup’, MASTER_PASSWORD=’backuppassword’, MASTER_LOG_FILE=’mysql-bin.000003′,MASTER_LOG_POS=106;
mysql> slave start;

5. 查看主從服務器的狀態
在主機A中,mysql>show master status\G;
在從機B中,mysql>show slave status\G;

確如以下行一致:
Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

++若是你想使用複製數據文件的方式來備份數據庫 只要在從服務器上的mysql命令行先鍵入slave stop; 而後複製數據庫文件,複製好了,再在mysql命令行鍵入slave start; 啓動從服務器,這樣就即備份了數據有保證了數據完整性,並且整個過程當中主服務器的mysql無需中止。

相關文章
相關標籤/搜索