MySQL5.1版本的主從複製搭建

us_yunleiwang發表於2013-12-06
 

MySQL5.1版本的主從複製搭建

【備註】:
主機192.168.250.20

備機192.168.250.40

 

主從複製

1主機上面已經有了MySQL5.1.53-log.

 

2備機上沒有mysql資料庫,需要在備機上安裝MySQL5.1.53-log軟體,具體參考svn文件“system\mysql\document\IT_SYS_MySQL_Installation.docx”。

 

3再次確定主伺服器與從伺服器的MySQL版本一致

  Showvariables like 'version';

 

4在主伺服器上位伺服器設定一個連線賬號,賦予replication slave許可權。

MySQL> grant replication slave, super,reload  on *.* to 'rel'@'192.168.250.40 identified by'slavepwd1229';

 

5 確保主伺服器上的my.cnf檔案的[mysqld]部分包括一個log-bin選項。如下:

   [mysqld]

   ………

    log-bin=mysql-bin

    server-id=1

binlog-ignore-db=mysql 
binlog-ignore-db=information_schema

 

6  確保從伺服器,確保在my.cnf檔案中新增以下的行:

   [mysqld]

log-bin=mysql-bin

    server-id=2

log_slave_updates = 1

read_only=1 # 這個參數列示只有supser

relay-log=relay-bin

relay-log-index=relay-bin

replicate-ignore-db=mysql

replicate-ignore-db=information_schema

log_bin_trust_function_creators 1

 

7 主伺服器重啟(如果配置了master服務也可以不重啟),從伺服器重啟

 

n  主伺服器已經執行很長時間,binlog不是從0001開始。

 

8 在主伺服器上檢視master狀態

mysql> show master status;

+------------------+-----------+--------------+------------------+

| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+-----------+--------------+------------------+

| mysql-bin.000075 | 875653787 |              |                  |

+------------------+-----------+--------------+------------------+

1 row in set (0.00 sec)

 

 

9  啟動從伺服器,設定複製斷點

先從250.20上面copy資料檔案到250.40上面,然後chown資料許可權,最後重新整理表

Mysql> flush tables;

102上面匯入所有的儲存過程以及儲存函式:

/usr/local/mysql/bin/mysqldump -h192.168.250.20-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R csf_maec > /tmp/cm20101230.sql;

/usr/local/mysql/bin/mysqldump -hlocalhost-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R csf > /tmp/csf20101230.sql;

/usr/local/mysql/bin/mysqldump -hlocalhost-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R csf_pub > /tmp/csf_pub20101230.sql;

/usr/local/mysql/bin/mysqldump -hlocalhost-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R reuters_interface >/tmp/reuers_inter20101230.sql;   

 

Mysql> change master tomaster_user='rel',

master_password=' slavepd1012301151' ,

master_host='192.168.250.20’,

master_log_file='mysql-bin.000075',

master_log_pos=875653787;

 

mysql> start slave;

mysql> show slave status \G;

 

10如果複製狀態Slave_IO_RunningSlave_SQL_Running都為Yes,說明覆制已經配置正確,如下:

     Slave_IO_Running: Yes

     Slave_SQL_Running: Yes

Ok,下面insertdeleteupdatedroptruncate等等都測試成功。

 

意外1

  主機停機,備機正常:主機重啟之後,備機仍然可以正常進行復制同步。

意外2

  主機不停機,備機停機:備機重啟後,備機開啟手工複製功能如下:

Mysql> start slave;

意外3

  主機停機,備機停機:

(1) 先開啟slave,啟動mysql,進入mysql

Mysql> stop slave;

Mysql> show slave status \G;記下最後一個posbinlog值為mysql-bin.000079875653787

 

(2) 重新指定master目標:

Mysql> change master tomaster_user='rel',

master_password=' slavepd1012301151' ,

master_host='192.168.250.20,

master_log_file='mysql-bin.000079',

master_log_pos=875653787;

 

(3) 啟動master

(4) 進入slave,啟動複製功能。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23490154/viewspace-1062530/,如需轉載,請註明出處,否則將追究法律責任。

相關文章