Sharding-JDBC 讀寫分離
阿新 • • 發佈:2021-08-23
配置 MySQL 主從
第一步 新增 mysql 例項
複製原有 mysql 如:D:\mysql-5.7.25(作為主庫) -> D:\mysql-5.7.25-s1(作為從庫),並修改以
下從庫的 my.ini:
[mysqld] #設定3307埠 port = 3307 # 設定mysql的安裝目錄 basedir=D:\mysql‐5.7.25‐s1 # 設定mysql資料庫的資料的存放目錄 datadir=D:\mysql‐5.7.25‐s1\data
然後將從庫安裝為 windows 服務,注意配置檔案位置:
D:\mysql‐5.7.25‐s1\bin>mysqld install mysqls1 ‐‐defaults‐file="D:\mysql‐5.7.25‐s1\my.ini" 刪除服務命令 sc delete 服務名稱
由於從庫是從主庫複製過來的,因此裡面的資料完全一致,可使用原來的賬號、密碼登入。 第二步 修改主、從庫的配置檔案新增內容如下: 主庫 my,ini
[mysqld] #開啟日誌 log‐bin = mysql‐bin #設定服務id,主從不能一致 server‐id = 1 #設定需要同步的資料庫 binlog‐do‐db=user_db #遮蔽系統庫同步 binlog‐ignore‐db=mysql binlog‐ignore‐db=information_schema binlog‐ignore‐db=performance_schema
從庫 my.ini
[mysqld] #開啟日誌 log‐bin = mysql‐bin #設定服務id,主從不能一致 server‐id = 2 #設定需要同步的資料庫 replicate_wild_do_table=user_db.% #遮蔽系統庫同步 replicate_wild_ignore_table=mysql.% replicate_wild_ignore_table=information_schema.% replicate_wild_ignore_table=performance_schema.%
重啟主庫和從庫 第三步 建立用於主從複製的賬號
#切換至主庫bin目錄,登入主庫 mysql ‐h localhost ‐uroot ‐p #授權主備複製專用賬號 GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%' IDENTIFIED BY 'db_sync'; #重新整理許可權 FLUSH PRIVILEGES; #確認位點 記錄下檔名以及位點 show master status;
第四步 設定從庫向主庫同步資料
#切換至從庫bin目錄,登入從庫 mysql ‐h localhost ‐P3307 ‐uroot ‐p #先停止同步 STOP SLAVE; #修改從庫指向到主庫,使用上一步記錄的檔名以及位點 CHANGE MASTER TO master_host = 'localhost', master_user = 'db_sync', master_password = 'db_sync', master_log_file = 'mysql‐bin.000002', master_log_pos = 154; #啟動同步 START SLAVE; #檢視從庫狀態Slave_IO_Runing和Slave_SQL_Runing都為Yes說明同步成功,如果不為Yes,請檢查 error_log,然後 排查相關異常。 show slave status #注意 如果之前此從庫已有主庫指向 需要先執行以下命令清空 STOP SLAVE IO_THREAD FOR CHANNEL ''; reset slave all;
Sharding-JDBC 讀寫分離配置
# 增加資料來源s0,使用上面主從同步配置的從庫。 spring.shardingsphere.datasource.names = m0,m1,m2,s0 ... spring.shardingsphere.datasource.s0.type = com.alibaba.druid.pool.DruidDataSource spring.shardingsphere.datasource.s0.driver‐class‐name = com.mysql.jdbc.Driver spring.shardingsphere.datasource.s0.url