天天看點

MySQL主從複制的安裝配置

在安裝配置MySQL主從複制前,主從伺服器的安裝請檢視《MySQL5.5源碼包安裝 for Red Hat Enterprise Linux 6》這篇文章。

1、主從伺服器的資訊如下

主從 IP位址 主機名稱
master 192.168.0.10 leon
slave 192.168.0.11 leonslave

2、master伺服器建立[email protected]賬号用于slave伺服器連接配接

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.11' IDENTIFIED BY  'abc123';

3、在master伺服器的/etc/my.cnf的[mysqld]部分添加如下參數

log_bin=mysql-bin

server_id=10

重新開機mysql服務,使配置生效

[[email protected] /]# service mysql restart

4、在slave伺服器的/etc/my.cnf的[mysqld]部分添加如下參數

log_bin = mysql-bin

server_id = 11

重新開機mysql服務,使配置生效

[[email protected] /]# service mysql restart

5、生成master伺服器的資料檔案快照

會話一:確定資料庫沒有操作,以便獲得一緻性的快照

mysql> flush tables with read lock;

會話二:記下顯示結果中的日志檔案及偏移位置。

mysql> show master status;

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000009 |      107 |              |                  |

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

會話三:打包data目錄的檔案

[[email protected] mysql5548]# tar -cvf data.tar data

會話一:結束鎖表操作

mysql> unlock tables;

6、将master伺服器的一緻性備份恢複到slave伺服器

停止mysql服務,删除data目錄,并将master的data.tar解壓在這個位置

[[email protected] mysql5548]# service mysql stop

[[email protected] mysql5548]# rm -rf data

[[email protected] mysql5548]# tar -xvf data.tar

7、在slave伺服器使用--skip-slave-start 選項啟動slave資料庫,這樣不會立即啟動slave數

據庫服務上的複制程序,友善我們對從資料庫的服務進行進一步的配置

[[email protected] mysql5548]$ ./bin/mysqld_safe --skip-slave-start &

對slave資料庫伺服器做相應設定,指定複制使用的使用者,主資料庫伺服器的IP、端

口以及開始執行複制的日志檔案和位置等

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.10',MASTER_USER='repl',MASTER_PASSWORD='leonliao',

MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=107;

啟動slave線程

mysql> start slave;

檢視slave線程的狀态,若Slave_IO_Running和Slave_SQL_Running參數都為YES,表示複制已經運作

mysql> show slave status\G;

8、常見的問題

Slave_IO_Running參數如果是connecting,表示還未連接配接到master資料庫,産生的原因有如下幾種:

a、防火牆問題

b、使用者的權限問題

c、在slave資料庫連接配接master資料庫的IP、使用者名、密碼、日志、pos等配置不正确