分庫分表是大型互聯網應用經常採用的一種數據層優化方案,常見的分庫分表中間件如 sharding-jdbc、mycat 都已經比較成熟,基本上可以應對我們一般的分庫分表需求。 做過分庫分表的同學應該知道,在給業務系統做分庫分表改造過程中,難的不是如何使用這些組件進行分庫分表,而是如何將非分庫分表的系... ...
本文參考了這篇文章 https://blog.csdn.net/tenc1239/article/details/130451736 感謝大佬的分享
前提:自己準備好兩個資料庫環境,我用的是本機的vm虛擬機linux中的mysql(版本8.0.33)和本機windows中的mysql(8.1.0)
一、配置主庫
1、配置 my.cnf 文件
# 服務id 用來保證整個集群環境的唯一性 取值範圍[1,2^32 - 1] 預設為1 server-id=1 # 是否可讀:0可讀可寫 1只讀 read-only=0 # 二進位文件的命名 log-bin=master-bin # 二進位索引文件的命名 log-bin-index=master-bin.index # 忽略的數據 表示不需要同步的資料庫 # binlog-ignore-db=mysql # 指定同步的資料庫 binlog-do-db=zeroStart
2、創建用於複製的賬號(也可以直接用root)
--創建賬號 mysql> create user 'mts'@'%' identified by '12345678'; --也可以直接使用這句: mysql> GRANT all privileges on *.* to 'mts'@'%' identified by '12345678' with grant option; --設置主重覆制許可權 mysql> grant replication slave on *.* to 'mts@'%'';
3、查看二進位坐標
mysql> show master status;
這裡面的 File、Position 在從庫配置中會用到
二、從庫配置
1、修改 my.ini 文件
# server-id 要和主庫不一樣 server-id=2 # 只讀(可選) read-only=1
2、使用 mysql -h 主庫ip -u root -p 命令,測試是否能連接上主庫
3、修改從庫數據源,註:\ 為換行符
mysql> change master to \ mysql> master_host='192.168.153.128',\ #主庫地址 mysql> master_port=3306,\ #主庫埠 mysql> master_user='root',\ #主庫用戶(為省事我直接使用root) mysql> master_password='12345678',\ mysql> master_log_pos=157,\ #起始位置,使用上面的 Position 值 mysql> master_log_file='master-bin.000002'; #二進位文件名,使用上面的 File 值
4、啟動主從複製
mysql> start replica;
三、操作數據,查看主從複製狀態
1、在主庫使用 insert、update、delete 操作,查看數據是否會同步到從庫
2、查看主從複製狀態
mysql> show replica status\G;
四、註意事項:
1、操作前先確保主從庫能互通,埠有放開
2、從庫可以有多個,本文只是作為記錄,只配置了一個
3、停止主從複製,可以在從庫使用 STOP SLAVE; 命令