1. 程式人生 > 實用技巧 >資料庫的主從複製

資料庫的主從複製

先讓兩臺伺服器互通

確定兩臺都是有安裝mysql的

實際環境可以讓主機的防火牆給埠3306放行,這裡 就直接關閉防火牆了

輸入密碼進入mysql 並向伺服器中授權一個從資料庫使用者給從機,然後重新整理一下資料庫的狀態
  ` mysql -uroot -p123.com`

授權

  `grant replication slave on *.*to'slvZ'@'192.168.2.%' identified by'123.com';`

修改配置檔案

  `vim /etc/my.cnf`

  ``
        log-bin=master-bin
        log-slave-update=true


        # binary logging format - mixed recommended
        binlog_format=mixed

        # required unique id between 1 and 2^32 - 1
        # defaults to 1 if master-host is not set
        # but will not function as a master if omitted
        server-id       = 11

  ``

重啟服務

  `systemctl restart mysqld`

進入mysql

  ``
        mysql> show master status;
        +-------------------+----------+--------------+------------------+
        | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
        +-------------------+----------+--------------+------------------+
        | master-bin.000001 |      107 |              |                  |
        +-------------------+----------+--------------+------------------+
        1 row in set (0.00 sec)
  ``

需要記住這裡的編碼

去到從機修改配置檔案

  ``
        vim /etc/my.cnf

        server-id       = 22

  ``

重啟資料庫

  `systemctl restart mysqld`

進入資料庫

  ``
        mysql> slave stop;
        Query OK, 0 rows affected, 1 warning (0.00 sec)

        mysql> change master to master_host='192.168.2.9',master_user='slvZ',master_password='123.com',master_log_file='master-bin.000001',master_log_pos=107;
        Query OK, 0 rows affected (0.01 sec)

        mysql> start slave;
        Query OK, 0 rows affected (0.00 sec)

        mysql> show slave status\G
        #主要是看著兩行
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes

  ``

之後測試一下主建立 從檢視就好了