配置\清除 MySQL 主從 讀寫分離

php迷途小書童發表於2019-06-20

配置master資料庫檔案

  1. 資料庫配置檔案

        vim /etc/my.cnf #編輯資料庫配置檔案
        server-id=1 #設定主伺服器id,必須唯一
        #一定要確保主mysql的server-id 小於從mysql的server-id
        binlog-ignore-db=mysql,test#其他忽略的資料庫名
        binlog-do-db=#需要備份的資料庫名,比如learnku
        log-bin=master-bin #指定一個日誌路徑,用於主從
        log-bin-index=master-bin.index #指定mysql-bin.index檔案的路徑,用於主從
        ###重啟Mysql###
    
  2. 新增從資料庫連線賬戶並配置許可權

       #為了以後可擴充套件性,可以配置使用者名稱為類似slaver_1,2,3...
       #IP內網互通,配置內網
        mysql -uroot -p
        mysql> CREATE USER 'slaver_1'@'127.0.0.2' IDENTIFIED BY 'password'; #IP內網互通,配置內網IP
        mysql> GRANT REPLICATION SLAVE ON learnku.* TO 'slaver_1'@'127.0.0.2'; #從賬戶分配許可權
        mysql> flush privileges; #重新整理許可權
    
  3. 檢視主資料庫狀態,!!!記錄MYSQL-BIN POSITION

    mysql> SHOW MASTER STATUS;
    +-------------------+----------+--------------+------------------+-------------------+
    | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +-------------------+----------+--------------+------------------+-------------------+
    | master-bin.000001 |      154 | learnku  | mysql,test       |                   |
    +-------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    

配置從資料庫配置檔案

  1. 配置從伺服器id,保證唯一

    vim /etc/my.cnf 
    [mysqld] server-id=2 #設定從伺服器id,必須唯一, 一定要大於主mysql的server-id
    relay-log-index=slave-relay-bin.index #定義relay-log-index的檔名
    relay-log=slave-relay-bin#定義relay-log的檔名(預設儲存在資料目錄下)
    ###重啟Mysql###
    
  2. 配置從資料庫對映資訊

    mysql> CHANGE MASTER TO  MASTER_HOST='127.0.0.1',  MASTER_USER='slaver_1',MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000078',  MASTER_LOG_POS=306; 
    #MASTER_HOST 主伺服器IP,MASTER_USER 從伺服器USER,MASTER_PASSWORD 剛才配置的密碼,
    MASTER_LOG_FILE、 MASTER_LOG_POS,檢視主資料庫狀態時讓記錄的資訊
    
  3. 開啟同步

    mysql> start slave;
    
  4. 檢視從資料庫狀態

    mysql>show slave status\G
    #不帶分號
    

主伺服器建立資料庫檢視是否實現主從複製

  1. 建立資料庫test

    mysql> create database test default charset utf8 collate utf8_general_ci;
    
  2. 檢視從資料庫狀態,是否實現主從複製

    mysql> show databases;
    

備註

如果沒有配置成功

  1. 關閉從服務(stop slave;)
  2. 重複配置從資料庫的第二步,但是記得此時還要檢視主伺服器的資訊
  3. 重新開啟主從

相關文章