半路出家到Java,剛開始聽說到說程序支持讀寫分離感覺特別高大上,也一直沒接觸
偶然的機(jī)會接觸到了,就一定得記下來。
今天先講講數(shù)據(jù)庫的主從同步,兩個好處:
- 是讀寫分離可以用上。比如 寫操作就寫到主數(shù)據(jù)庫,讀就從從數(shù)據(jù)庫讀取
- 是純粹給數(shù)據(jù)庫備份,以防硬盤徹底崩了
主從數(shù)據(jù)庫操作準(zhǔn)備:
兩臺電腦,都安裝好mysql 5.5及以上版本,最好兩臺電腦都安裝同一版本數(shù)據(jù)庫,且能單獨正常使用
記住兩臺電腦的ip地址:
以我家里電腦為例: 主數(shù)據(jù)庫:192.168.0.102 從數(shù)據(jù)庫:192.168.0.104
【主數(shù)據(jù)庫下操作】
步驟一:
在主數(shù)據(jù)庫mysql安裝目錄下找到my.ini文件打開,在mysqld下添加主服務(wù)器配置
server-id=1 #服務(wù)器 id
log-bin=C:\Program Files\MySQL\MySQL Server 5.5\mysql-bin #二進(jìn)制文件存放路徑
binlog-do-db=test1 #待同步的數(shù)據(jù)庫
保存并重啟mysql服務(wù)后你可以在C:\Program Files\MySQL\MySQL Server 5.5 下看到mysql-bin.index 文件和mysql-bin.000001文件
輸入用戶名和密碼:mysql -u用戶名 -p密碼 ( mysql -uroot -proot )
步驟二,
給要連接的從服務(wù)器設(shè)置權(quán)限:grant replication slave,reload,super on *.* to slave@192.168.0.104 identified by 'root';
ps: 給主機(jī)192.168.0.104添加權(quán)限,用戶名:slave,密碼:root;(只需輸入一次就可以了)
步驟三,
輸入命令 show master status; # 找到File 和 Position 的值記錄下來;
【從數(shù)據(jù)庫上操作】
步驟四:
在mysql下找到my.ini文件,在其[mysqld] 下添加從服務(wù)器端配置:
server-id=2 #服務(wù)器 id ,不能和主服務(wù)器一致
replicate-do-db=test1 #待同步的數(shù)據(jù)庫
保存并重啟mysql服務(wù)
步驟五:
從服務(wù)器上測試:mysql -u slave -p root -h 192.168.0.102,查看能否連接主數(shù)據(jù)庫成功,
然后輸入exi退出mysql命令行或者關(guān)閉該cmd窗口新開一個cmd
步驟六:
修改對主數(shù)據(jù)庫的連接的參數(shù):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請?zhí)鎿Q為步驟三中查詢出來的值 否則不會同步的)
ps:可能會報一個錯誤,大概的意思是說slave線程正在運行,不能設(shè)置,這樣的話,執(zhí)行mysql>stop slave; 停止slave線程,然后再設(shè)置連接的參數(shù);
步驟七:
設(shè)置完之后,執(zhí)行 mysql> start slave; 開啟slave線程;執(zhí)行mysql> show slave status\G (沒有分號),查看
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
這是詳細(xì)的步驟,如果不成功 請聯(lián)系我?guī)湍憬鉀Q,按照這個步驟 只要兩個電腦網(wǎng)絡(luò)互通,應(yīng)該不會有問題的
不過需要注意的是:
如果對從數(shù)據(jù)庫進(jìn)行修改,是不會同步對主數(shù)據(jù)庫進(jìn)行修改的,這樣就應(yīng)該用主-主同步了,方法類似,
所以insert,delete update 都應(yīng)該是對主數(shù)據(jù)庫的操作, 而select操作則對從表進(jìn)行操作
具體程序中怎么實現(xiàn)讀寫分離,后續(xù)我將以具體demo形式呈現(xiàn)出來
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
您可能感興趣的文章:- MySQL 主從同步,事務(wù)回滾的實現(xiàn)原理
- MySQL數(shù)據(jù)庫主從同步實戰(zhàn)過程詳解
- MySQL主從同步中的server-id示例詳解
- Centos7系統(tǒng)下Mysql主從同步配置方案
- MySQL主從同步延遲的原因及解決辦法
- MySQL主從同步機(jī)制與同步延時問題追查過程
- MySQL數(shù)據(jù)庫的主從同步配置與讀寫分離
- Mysql主從同步Last_IO_Errno:1236錯誤解決方法
- Mysql主從同步的實現(xiàn)原理
- 詳解Mysql主從同步配置實戰(zhàn)
- 詳解MySQL數(shù)據(jù)庫設(shè)置主從同步的方法
- Mysql數(shù)據(jù)庫的主從同步配置