1. 程式人生 > 其它 >Sharding-JDBC 讀寫分離

Sharding-JDBC 讀寫分離

配置 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