半路出家到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 [email protected] 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形式呈現出來
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持!