windows下mysql 主從同步


半路出家到Java,剛開始聽說到說程序支持讀寫分離感覺特別高大上,也一直沒接觸

偶然的機會接觸到了,就一定得記下來。

 

今天先講講數據庫的主從同步,兩個好處:

    一是讀寫分離可以用上。比如 寫操作就寫到主數據庫,讀就從從數據庫讀取

           二是純粹給數據庫備份,以防硬盤徹底崩了

 

主從數據庫操作准備:

兩台電腦,都安裝好mysql 5.5及以上版本,最好兩台電腦都安裝同一版本數據庫,且能單獨正常使用

記住兩台電腦的ip地址:

以我家里電腦為例: 主數據庫:192.168.0.102   從數據庫:192.168.0.104

 

【主數據庫下操作】

步驟一:

在主數據庫mysql安裝目錄下找到my.ini文件打開,在mysqld下添加主服務器配置

server-id=1    #服務器 id 
log-bin=C:\Program Files\MySQL\MySQL Server 5.5\mysql-bin    #二進制文件存放路徑
binlog-do-db=test1    #待同步的數據庫

保存並重啟mysql服務后你可以在C:\Program Files\MySQL\MySQL Server 5.5 下看到mysql-bin.index 文件和mysql-bin.000001文件

 

輸入用戶名和密碼:mysql -u用戶名 -p密碼 (    mysql -uroot -proot   )

 

 

步驟二,

給要連接的從服務器設置權限:grant replication slave,reload,super on *.* to slave@192.168.0.104 identified by 'root';    

ps: 給主機192.168.0.104添加權限,用戶名:slave,密碼:root;(只需輸入一次就可以了)

 

步驟三,

輸入命令 show master status;       # 找到File 和 Position 的值記錄下來;

 

【從數據庫上操作】

步驟四:

在mysql下找到my.ini文件,在其[mysqld] 下添加從服務器端配置:

server-id=2    #服務器 id ,不能和主服務器一致
replicate-do-db=test1    #待同步的數據庫

保存並重啟mysql服務

 

步驟五:

從服務器上測試:mysql -u slave -p root -h 192.168.0.102,查看能否連接主數據庫成功,

然后輸入exi退出mysql命令行或者關閉該cmd窗口新開一個cmd

 

步驟六:

修改對主數據庫的連接的參數:mysql>change master to master_host='192.168.0.104',master_user='slave',master_password='root', master_log_file='mysql-bin.000001',master_log_pos=107;(這里輸入的mysql-bin.000001和107請替換為步驟三中查詢出來的值 否則不會同步的)  

ps:可能會報一個錯誤,大概的意思是說slave線程正在運行,不能設置,這樣的話,執行mysql>stop slave; 停止slave線程,然后再設置連接的參數;

 

步驟七:

設置完之后,執行 mysql> start slave; 開啟slave線程;執行mysql> show slave status\G   (沒有分號),查看

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
 
這是詳細的步驟,如果不成功 請聯系我幫你解決,按照這個步驟 只要兩個電腦網絡互通,應該不會有問題的

 

不過需要注意的是:

如果對從數據庫進行修改,是不會同步對主數據庫進行修改的,這樣就應該用主-主同步了,方法類似,

所以insert,delete update 都應該是對主數據庫的操作, 而select操作則對從表進行操作

 

具體程序中怎么實現讀寫分離,后續我將以具體demo形式呈現出來

 


免責聲明!

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



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