原理:主伺服器(Master)負責網站NonQuery操作,從伺服器負責Query操作,使用者可以根據網站功能模特性塊固定訪問Slave伺服器,或者自己寫個池或佇列,自由為請求分配從伺服器連線。主從伺服器利用MySQL的二進位制日誌檔案,實現資料同步。二進位制日誌由主伺服器產生,從伺服器響應獲取同步資料庫。

一、配置Master主伺服器

    1 mysql> CREATE USER 'master'@'192.168.%' IDENTIFIED BY '123456'; //建立新使用者    2 //master使用者必須具有REPLICATION SLAVE許可權,除此之外沒有必要新增不必要的許可權,密碼為123456。說明一下192.168.0.%,這個配置是指明maseter使用者所在伺服器,這裡%是萬用字元,表示192.168.0.0-192.168.0.255的Server都可以以maseter使用者登陸主伺服器。當然你也可以指定固定Ip,增加安全性
    3 mysql> GRANT REPLICATION SLAVE ON *.* TO 'master'@'192.168.0.%' IDENTIFIED BY '123456';
    4 如果你的mysql沒有安裝在C盤下,你需要先使用DOS命令進入mysql的安裝目錄下的bin目錄中
    5 確保主資料庫與從資料庫一模一樣,表和表結構。
    6 mysql資料庫中的命令必須以分號結尾“;”

二、配置主資料庫的my.ini(因為是在window下,所以是my.ini不是my.cnf)。

    [mysqld]

    server-id=1//給資料庫服務的唯一標識,一般為大家設定伺服器Ip的末尾號
    log-bin=log
    binlog-do-db=zk_master//要同步的zk_master資料庫,要同步多個數據庫,就多加幾個replicate-db-db=資料庫名
    binlog-ignore-db=mysql //要忽略的資料庫

三、置從資料庫的my.ini
    [mysqld]

    server-id=2
    master-host=192.168.1.111
    master-user=master//第一步建立賬號的使用者名稱
    master-password=123456   //第一步建立賬號的密碼
    master-port=3306
    master-connect-retry=60
    replicate-do-db=zk_slave        //要同步的mstest資料庫,要同步多個數據庫,就多加幾個replicate-db-db=資料庫名
    replicate-ignore-db=mysql  //要忽略的資料庫 

四、驗證是否成功

   進入mysql,後輸入命令:show slave status\G。將顯示下圖。

如果slave_io_running和slave_sql_running都為yes,那麼表明可以成功同步了

五、監控主從複製

編寫一shell指令碼,用nagios監控slave的兩個yes(Slave_IO及Slave_SQL程序),如發現只有一個或零個yes,就表明主從有問題了,發簡訊警報吧。

六、但是

master-host=192.168.8.111
master-user=backup
master-password=backup
master-port=3306
master-connect-retry=60
這些引數 mysql5.5已經廢棄了  

在從庫上執行如下命令;
change master to master_host='masterIP', master_user='masterUser', master_password='masterPASS';

slave start;

切記:

此處是masterIP地址,不是slave地址,而登陸賬號為是masterUser賬號密碼,不是網上說的從庫使用者和密碼,實踐出真知。