mysql在windows下主從同步配置


mysql主從同步:

 

1.為什么要主從同步?

  在Web應用系統中,數據庫性能是導致系統性能瓶頸最主要的原因之一。尤其是在大規模系統中,數據庫集群已經成為必備的配置之一。集群的好處主要有:查詢負載、數據庫復制備份等。其中Master負責寫操作的負載,也就是說一切寫的操作都在Master上進行,而讀的操作則分攤到Slave上進行。這樣一來的可以大大提高讀取的效率。寫操作涉及到鎖的問題,不管是行鎖還是表鎖還是塊鎖,都是比較降低系統執行效率的事情。我們這樣的分離是把寫操作集中在一個節點上,而讀操作其其他的N個節點上進行,從另一個方面有效的提高了讀的效率,保證了系統的高可用性。

 

2.mysql主從同步

   我的要同步的兩台mysql數據庫版本都是mysql5.6,兩台電腦都在同一個網段之中。

   ①修改主數據庫my.ini配置:

   Server-id = 1  這是數據庫ID,此ID是唯一的,ID值不能重復,否則會同步出錯;

   log-bin = mysql-bin 二進制日志文件,此項為必填項,否則不能同步數據;如果不取名字的話,那么就會以    計算機的名字加編號來命名二進制文件;

   binlog-do-db = testcreate  需要同步的數據庫,如果還需要同步另外的數據庫,那么繼續逐條添加,如果    不寫,那么默認同步所有的數據庫;

   binlog-ignore-db = mysql 不需要同步的數據庫;

   修改完成之后重啟mysql服務。

   注意點:在linux下,只需要修改/etc/my.cnf即可,但是在windows下,我改了安裝目錄下的my.ini,發現配置    並不生效,后來我看到了服務中的mysql服務的屬性,發現了這么一句話:"C:\Program Files\MySQL\MySQL      Server 5.6\bin\mysqld.exe" --defaults- file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini"        MySQL56,原來mysql服務讀取的配置文件在這里,后來修改了這個路徑下的my.ini,重啟服務,配置就生效      了。

 

   ② 添加主數據庫用於同步的賬號:

   給主數據庫授權一個可以進行復制的用戶,執行如下命令:

   grant replication slave on *.* to 'slave'@'%' identified by '123';

      

   ③顯示主數據庫的同步信息:

          

        可以看出已經產生了二進制的日志文件信息,mysql的同步就是通過這個二進制日志文件進行同步,主數據庫把    對數據庫的操作的指令都記錄到該日志文件下,從數據庫通過讀取該文件,來對從數據庫中的數據進行修改,    從而達到主從同步的效果。

 

   ④配置從數據庫的my.ini

   從數據庫的話只需要配置server-id,binlog-do-db,binlog-ignore-db即可。

    

   ⑤設置從數據庫鏈接到主數據庫

 

   在mysql下執行slave stop命令,停止slave服務;

      mysql> change master to

       -> master_host='192.168.1.189',

       -> master_user='slave',

       -> master_password='123',

       -> master_log_file='mysql-bin000014.000001',

       -> master_log_pos=107;

    注意:這里的master_log_file,master_log_pos的值要和master的值一致。否則會無法同步。

    執行slave start命令,啟動服務。

    注意:在這里可能會無法鏈接到主數據庫,需要看主數據庫中my.ini中bind 127.0.0.1是否沒有被注釋,如果     沒有,那么只能在本機登錄,而不能使用遠程登錄方式。

 

   ⑥驗證是否同步:

   執行show slave status\G;

   得到如下結果則說明同步成功。

       

      也可以在主數據庫被同步的表中做crud操作,看從數據庫中的數據有無變化。

 


免責聲明!

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



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