如何建立主從服務器


1.

 

 

 

2.

 a、為什么需要讀寫分離?

  一台服務器滿足不了訪問需要。數據的訪問基本都是2-8原則。

  b、怎么做?

    不往從服務器去寫了,那就要主上寫的操作都要同步到從(主從同步)

        (1) master將改變記錄到二進制日志(binary log)中(這些記錄叫做二進制日志事件,binary log events);

        (2) slave將master的binary log events拷貝到它的中繼日志(relay log);

        (3) slave重做中繼日志中的事件,將更改應用到自己的數據上。

    把讀的請求同步到從,把寫的請求分發的主。(讀寫分離) 技術選型,myproxy

2.1

這里在一台計算機上模擬開啟兩台數據庫服務,主從服務器配置好后如下圖:

 

 2.2

2.3

在該路徑下D:\MySQL\MySQL Server 5.5_master\bin,執行如下命令:(cmd必須是在管理員模式下運行)

          mysqld --install MySQLXY --defaults-file="D:\MySQL\MySQL Server 5.5_master\my.ini"   安裝服務

         注意:MySQLXY是服務名稱,可以任意取名稱

                  defaults-file="D:\MySQL\MySQL Server 5.5_master\my.ini"是主數據庫配置文件地址

         net start MySQLXY 啟動服務

         sc delete MySQLXY  刪除服務

    安裝成功后,可以在任務管理其中查看該服務:

 

 

2.4    進入數據庫

 

3.0master服務器配置

在2.1中我們已經准備好了兩台數據庫服務器,現在將其中一台配置成master服務器,及主服務器,步驟如下:

             a. 修改master方的mysql.ini

               log-bin=mysql-bin  #見備注

               server-id=1  #服務id,一個集群中必須保證唯一

     innodb_flush_log_at_trx_commit=1 #暫時不配置

     sync_binlog=1 #暫時不配置

     binlog_ignore_db=mysql #暫時不配置

     binlog_checksum=none #暫時不配置

        備注: log-bin=mysql-bin,解釋(來自百度):

  bin-log日志的定義和作用我就直接百度過來了,也很好理解的。

  基本定義:二進制日志,也成為二進制日志,記錄對數據發生或潛在發生更改的SQL語句,並以二進制的形式保存在磁盤中;

  作用:可以用來查看數據庫的變更歷史(具體的時間點所有的SQL操作)、數據庫增量備份和恢復(增量備份和基於時間點的恢復)、MySQL的復制(主主數據庫的復制、主從數據庫的復制)

  文件位置:默認存放位置為數據庫文件所在目錄下

  文件的命名方式: 名稱為hostname-bin.xxxxx (重啟mysql一次將會自動生成一個新的binlog)

  狀態的查看:mysql> show variables like '%log_bin%';

  以上這些都是百度復制過來的,我們看完后也很好理解了,bin-log日志也就是二進制日志,只要數據發生改變(增刪改),都是記錄到日志里。所以我們可以通過bin-log日志進行數據恢復。

             b.重啟master服務,登錄,查看data文件如下圖說明配置成功

 

 

  c.授權savle服務器的使用的賬號及權限

                  假設:

                  master主服務器: 192.168.1.101

                  slave從服務器     :  192.168.1.102

            1) 授權給slave數據庫服務器192.168.1.102(master用戶,只對slave服務器開放)

                語法為:GRANT REPLICATION SLAVE ON *.* to '用戶名'@'192.168.0.102' identified

                        by ‘密碼’;

                 Mysql>  GRANT REPLICATION SLAVE ON *.* to 's1'@'192.168.0.102'identified  by 'admin';

                         參數說明:

                                  s1:slave連接master使用的賬號

                                  IDENTIFIED BY 'admin' :slave連接master使用的密碼

                                  192.168.0.102:slave IP地址

             2)查詢主數據庫狀態

            Mysql> show master status;

 

 4.

從數據庫slave配置

 步驟如下:

  a.修改slave服務器的配置文件my.ini將 server-id = 1修改為 server-id = 10,並確保這個 ID沒有被別的MySQL服務所使用。

  b.啟動slave服務器,登錄

       c.在slave端,配置master鏈接信息 (執行語句)

           1) 配置

            Mysql>  change master to

                   master_host='192.168.1.101',   #master IP

                   master_user='s1',          #master數據庫通過GRANT授權的賬號

                   master_password='admin',         #master數據庫通過GRANT授權的密碼

                   master_port=3307,              #master數據庫的端口號

                   master_log_file='mysql-bin.000001', #master數據庫中通過show master status顯示的File名稱

                   master_log_pos=1144     #master數據庫的通過show master status顯示的Position的值,表示從1144操作的步驟開始執行同步

            2) (重啟)連接

                   Mysql> start slave;

            3)主從同步檢查

            show slave status;

            其中Slave_IO_Running 與 Slave_SQL_Running 的值都必須為YES,才表明狀態正常。

  d.測試

          1) 在master上,建庫、建表、添加數據

          2) 刷新slave庫,記錄也存在(自動創建的)

由此,整個MySQL主從復制的過程就完成了,接下來,我們進行MySQL讀寫分離的安裝與配置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM