首頁 >資料庫 >mysql教程 >詳細介紹mysql主從配置的源碼及複製原理

詳細介紹mysql主從配置的源碼及複製原理

php是最好的语言
php是最好的语言原創
2018-07-24 13:38:211208瀏覽

本文主要講述mysql的主從複製和讀寫分離的實現,以下有mysql的主從複製源碼。怎麼安裝mysql資料庫,這裡不說了,只說它的主從複製,步驟如下:

1、主從伺服器分別作以下動作
  1.1、版本一致
  1.2、初始化表,並在後台啟動mysql
  1.3、修改root的密碼

2、修改主機伺服器master:
   #vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必須啟用二進位日誌
       server-id=222      //[必須]伺服器唯一ID,預設為1,一般取IP最後一段

3、修改從伺服器slave:





















vi /etc/my.cnf
       [mysqld]       log-bin=mysql-bin   //[不是必須]啟用二進位日誌   /   //[非必須]啟用二元伺服器預設是1,一般取IP最後一段


4、重啟兩台伺服器的mysql

   /etc/init.d/mysql restart
# 5.在主機伺服器上建立帳戶並授權slave:

   #/usr/local/mysql/bin/mysql -uroot -pmttang   
   mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@ '%' identified by 'q123456'; //一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如192.168.145.226,加強安全。


6、登入主伺服器的mysql,查詢master的狀態

   mysql>show master status;
   -------------- ---- ---------- -------------- ------------------
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   ------------------ ---------- ----------- --- ------------------
   | mysql-bin.000004 |      308 |              |    ------ ---------- -------------- ------------------
   1 row in set (0.00 sec)
   注意:執行完此步驟後不要再操作主伺服器MYSQL,防止主伺服器狀態值變更


7、設定從伺服器Slave:

   mysql>change master to master_host='192.168.145.222',master_user='mysync',master_password='q123456',
    斷開,308數字前後無單引號。

   Mysql>start slave;    //啟動從伺服器複製功能

8、檢查從伺服器複製功能狀態:

   mysql> show slave status \G

   *************************** 1. row ************* **************
###              Slave_IO_State: Waiting for master to send event###              Master_Host: 192.168.2.222222.2222222222/20o致mysync   //授權帳號名,盡量避免使用root###              Master_Port: 3306    //資料庫連接埠,部分版本沒有此行###          000004###              Read_Master_Log_Pos: 600     //#同步讀取取二元日誌的位置,大於等於Exec_Master_Log_Pos###              Relay_Log_File: ddte-relay-bin.000003###   lay_Master_Log_File: mysql-bin.000004###              Slave_IO_Running: Yes    //此狀態必須YES# ##              Slave_SQL_Running: Yes     //此狀態必須YES###              :其中一個NO均屬錯誤)。 ######以上操作過程,主從伺服器設定完成。 ###  ######9、主從伺服器測試:#########主伺服器Mysql,建立資料庫,並在這個函式庫中建表插入一個資料:######  mysql> ; create database hi_db;###查詢正常,1 行受影響(0.00 秒)

  mysql> use hi_db;
# 資料庫已變更

 mysql> create table hi_tb(id int(3),name char(10));
  查詢正常,0 行受影響(0.00 秒)
 
  mysql> insert into hi_tb values(001,'bobu');
  查詢正常,1 行受影響(0.00 秒)

  mysql>顯示資料庫;
   --------------------
   |資料庫           |
  --------------------
   | information_schema |
   | hi_db                |
#   | mysql                |
#   | test                 |
   --------------------
   4 rows in set (0.00 sec)

從伺服器Mysql查詢:

#   mysql>顯示資料庫;

   --------------------
   |資料庫               |
   --------------------
   | information_schema |
   | hi_db                 | //我來了,大家看到了吧
   | mysql                 |
   |測驗          |

    --------------------
   4 行集合(0.00 秒)

   mysql>使用 hi_db
   資料庫已變更
   mysql>從 hi_tb 選擇*; //查看主伺服器上新增的特定資料
   ------ ------
   |編號 |姓名 |
   ------ ------
   | 1 | bobu |
   ------ ------
   1 行一組(0.00 秒)
 

10、完成:
#寫了一個shell腳本,用nagios監控slave的兩個yes(Slave_IO及Slave_SQL進程),如發現只有一個或零個yes,就表明主從有問題了,發短信警告吧。

相關推薦:

資料MySQL管理之備份復原案例影片教學

#詳解MySQL實作主從複製過程-mysql教學


########## ####mysql教學:MySQL如何實作主從複製過程的範例詳解###############

以上是詳細介紹mysql主從配置的源碼及複製原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn