MySQL的主從複製(windows)

來源:互聯網
上載者:User

標籤:ignore   verify   分配   從庫   說明   不能   bsp   ids   作業系統   

  在我們實際的開發中,當系統業務到達一定的程度,可能資料庫會到達一定的瓶頸,但實際開發中最容易到達資料庫瓶頸的應該是資料庫的讀效能,一般的業務大多都是讀多寫少,我們可以通過提高讀的效能來提高資料庫的整體效能,我們可以通過搭建主從複製的資料庫叢集,把資料庫的讀寫進行分離,實現在主庫進行寫,在從庫進行讀,當讀的效能達到瓶頸時,可以增加從庫的數量來線性增加讀的效能,但是如果主的效能達到瓶頸,通過主從複製是無法提高主庫寫入的效能的。好了,下面我們開始搭建主從複製結果吧。

  1、安裝mysql

    安裝要求:

      (1)你可以在多個作業系統上分別安裝mysql(需要多個電腦或者一個電腦上安裝多個虛擬機器)

      (2)你也可以在一個作業系統上安裝mysql(使用不同的連接埠)

    由於電腦效能的原因,我這裡使用第二種方式。

      (1)解壓三次mysql到檔案夾,分別起名為master,slave1,slave2

      (2)修改master中的my-small.ini設定檔的名稱為my.ini

        port=3306(修改的是mysqld的連接埠,不是client的連接埠)

        server-id=1

        log-bin=mysql-bin  取消注釋(去掉#)

      (3)修改slave1中的my-small.ini設定檔的名稱為my.ini

        port=3307(修改的是mysqld的連接埠,不是client的連接埠)

        server-id=2

        log-bin=mysql-bin  取消注釋(去掉#)

      (4)修改slave2中的my-small.ini設定檔的名稱為my.ini

        port=3308(修改的是mysqld的連接埠,不是client的連接埠)

        server-id=3

        log-bin=mysqlbin  取消注釋(去掉#)

     註:

      server-id是mysql資料庫的唯一標識,不能一樣

      主從複製需要使用到log-bin,所以需要配置

      修改連接埠的目的是為了在一個作業系統上運行多個mysql

  2、分別安裝並啟動三個服務

    進入master的bin目錄執行  mysqld install master

        net start master

    進入slave1的bin目錄執行  mysqld install slave1

        net start slave1

    進入slave2的bin目錄執行  mysqld install slave2

        net start slave2

  3、串連到master伺服器進行主庫設定

    (1)進入master的bin目錄執行mysql -P3306 -uroot -p 

      串連到master資料庫伺服器

    (2)為要串連的從庫分配許可權

       mysql> grant replication slave on *.* to ‘mysql‘@‘192.168.91.92‘ identified by ‘123‘;   #分配許可權      

       mysql> flush privileges;    #重新整理許可權,讓許可權生效

    (3)查看主庫狀態

        mysql> show master status;

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

       | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

       | mysql-bin.000001 |      334 |              |                  |

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

      註:一定要注意,從庫串連主庫時需要使用到File和Position

      

  4、串連到slave1伺服器進行從庫設定

    (1)進入slave1的bin目錄執行mysql -P3307 -uroot -p 

      串連到slave1資料庫伺服器

    (2)讓從庫串連到主庫(使用在主庫中分配的帳號)

      mysql> change master to

         master_host=‘192.168.91.92‘,

         master_user=‘mysql‘,

         master_password=‘123‘,

         master_log_file=‘mysql-bin.000001‘,   #和查看主庫狀態中的檔案一致

         master_log_pos=334;   #和查看主庫狀態中的位置一致

    (3)啟動從庫

      mysql> start slave;

    (4)顯示從庫狀態

      mysql> show slave status\G;

      *************************** 1. row ***************************

                   Slave_IO_State: Waiting for master to send event

                     Master_Host: 192.168.91.92       #主庫的ip地址

                     Master_User: mysql      #登入主庫的帳號

                     Master_Port: 3306                      #主庫的連接埠號碼

                  Connect_Retry: 60

                  Master_Log_File: mysql-bin.000001

               Read_Master_Log_Pos: 334

                  Relay_Log_File: 6DWTCVDFBIEGWHC-relay-bin.000002

                    Relay_Log_Pos: 253

               Relay_Master_Log_File: mysql-bin.000001

                 Slave_IO_Running: Yes    #Yes代表的是與主庫串連正常

                 Slave_SQL_Running: Yes          #Yes代表的是從庫的執行SQL的線程已經準備就緒

                 Replicate_Do_DB:

               Replicate_Ignore_DB:

               Replicate_Do_Table:

               Replicate_Ignore_Table:

          Replicate_Wild_Do_Table:

          Replicate_Wild_Ignore_Table:

                       Last_Errno: 0

                       Last_Error:

                    Skip_Counter: 0

                 Exec_Master_Log_Pos: 334

                 Relay_Log_Space: 419

                 Until_Condition: None

                 Until_Log_File:

                    Until_Log_Pos: 0

                 Master_SSL_Allowed: No

              Master_SSL_CA_File:

                Master_SSL_CA_Path:

                Master_SSL_Cert:

                Master_SSL_Cipher:

                Master_SSL_Key:

           Seconds_Behind_Master: 0

           Master_SSL_Verify_Server_Cert: No

                  Last_IO_Errno: 0

                  Last_IO_Error:

                Last_SQL_Errno: 0

                  Last_SQL_Error:

           Replicate_Ignore_Server_Ids:

                Master_Server_Id: 1

  5、串連到slave2伺服器進行從庫設定

    先串連到slave2伺服器,其它設定和slave1完全一致,可以參考slave1

  6、測試

    你可以先在主庫中建立庫,建立表,添加資料然後在從庫中查看有沒有同步,如果同步了說明環境搭建沒有問題。

 

好了,mysql主從複製環境已經搭建好了,來總結一下主從複製的優缺點,其實在本文的開頭已經說過了。

  優點:能夠線性提高資料庫的讀的效能

  缺點:當寫的效能達到瓶頸時使用主從複製,不會對效能帶來提高

    

    

       

    

MySQL的主從複製(windows)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.