1. 程式人生 > >linux下 mysql主從備份

linux下 mysql主從備份

帳號 滿足 popu pass ext 地址 ont 建立數據庫 版本號

版權聲明:本文為博主原創文章,未經博主同意不得轉載。 https://blog.csdn.net/czh0423/article/details/26720539 一、準備
用兩臺server做測試:
Master Server: 192.0.0.1/Linux/MYSQL 4.1.12
Slave Server: 192.0.0.2/Linux/MYSQL 4.1.18
???
??? 做主從server的原則是,MYSQL版本號要同樣,假設不能滿足。最起碼從server的MYSQL的版本號必須高於主server的MYSQL版本號

二、配置masterserver
1. 登錄Masterserver,編輯my.cnf
#vim /etc/my.cnf
在[mysqld]段加入下面內容:

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

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

2.從masterserver加入要從slaveserver訪問masterserver的有權限的帳號,看下面命令就知道了:

mysql> grant replication slave on *.*
-> to ‘abc‘@‘192.0.0.2‘ identified by ‘123‘;

格式:mysql> GRANT REPLICATION SLAVE ON *.*
?? -> TO ‘帳號‘@‘從serverIP或主機名‘ IDENTIFIED BY ‘密碼‘;

3. 重起Mysql

4. 備份master數據庫數據

# mysqldump --master-data extmail > extmail_backup_20071120.sql

要加--master-data 選項。這裏備份masterserver的數據,後面要導入slaveserver。



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)

三、配置slaveserver
1. 編輯my.cnf
# vim /etc/my.cnf

在[mysqld]段加入下面內容:

server-id=2
master-host=192.0.0.1
master-port=3306
master-user=abc
master-password=123
master-connect-retry=60

解釋:
slaveserver的server-id不能與master同樣,多臺slave之間server-id也不能同樣。


master-host 是 masterserver的主機名或者IP地址
master-user和master-password是前面我們在master上建username與password
master-connect-retry 是假設從server發現主server斷掉。又一次連接的時間差

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

# mysqladmin create extmail
# mysql extmail < extmail_backup_20071120.sql

3. 重起mysqlserver
4. 停止slave服務,設置主server的各種參數

mysql> slave stop;
mysql> change master to
-> MASTER_HOST=‘192.0.0.1‘,
-> MASTER_USER=‘abc‘,
-> MASTER_PASSWORD=‘123‘,
-> MASTER_LOG_FILE=‘mysql-bin.000002‘,
-> MASTER_LOG_POS=79;
mysql> slave start;

5. 查看主從server的狀態
show slave status;
SHOW PROCESSLIST;
顯示下面內容時,主從server配置成功
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: 必須為 Yes
Slave_SQL_Running:必須為 Yes


6.手動同步數據,會自己主動建立數據庫,須要設置用戶ylmf對應權限
LOAD DATA FROM MASTER。


linux下 mysql主從備份