半路出家到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形式呈現出來
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
您可能感興趣的文章:- MySQL 主從同步,事務回滾的實現原理
- MySQL數據庫主從同步實戰過程詳解
- MySQL主從同步中的server-id示例詳解
- Centos7系統下Mysql主從同步配置方案
- MySQL主從同步延遲的原因及解決辦法
- MySQL主從同步機制與同步延時問題追查過程
- MySQL數據庫的主從同步配置與讀寫分離
- Mysql主從同步Last_IO_Errno:1236錯誤解決方法
- Mysql主從同步的實現原理
- 詳解Mysql主從同步配置實戰
- 詳解MySQL數據庫設置主從同步的方法
- Mysql數據庫的主從同步配置