MySql读写分离

目录

配置-主库Master

1、修改Mysql数据库的配置文件/etc/my.cnf,启用二进制日志

2、重启

3、为从库授权

4、记录File和Position的值

配置-从库Slave

1、修改Mysql数据库的配置文件/etc/my.cnf

2、重启

3、登录mysql,执行下面sql

4、查看数据库状态

读写分离案例

使用Sharding-JDBC实现读写分离

1、导入maven坐标

2、配置读写分离规则

3、在配置文件中配置允许bean定义覆盖配置项


配置-主库Master

1、修改Mysql数据库的配置文件/etc/my.cnf,启用二进制日志

log-bin = mysql-bin   启用二进制日志

server-id = 100  服务器唯一id

2、重启

systemctl restart mysqld

3、为从库授权

GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456'

4、记录File和Position的值

show master status

配置-从库Slave

1、修改Mysql数据库的配置文件/etc/my.cnf

server-id = 101  服务器唯一id

2、重启

systemctl restart mysqld

3、登录mysql,执行下面sql

 change master to master_host='ip',master_user='',master_password='',master_log_file='mysql-bin.000001',master_log_pos=441;

这里的用户和密码与主库授权的用户密码匹配,file和pos与上面的截图中的file和position匹配。

start salve; 开启

4、查看数据库状态

show slave status;

读写分离案例

使用Sharding-JDBC实现读写分离

1、导入maven坐标
<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>4.0.0-RC1</version>
</dependency>
2、配置读写分离规则
spring:
  shardingsphere:
    datasource:
      druid:
      names: master,slave
      # 主数据源
    master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://ip:3306/itcast?characterEncoding=utf-8
        username: root
        password: root
      # 从数据源
    slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://ip:3306/itcast?characterEncoding=utf-8
        username: root
        password: root
    masterslave:
      # 读写分离配置
      load-balance-algorithm-type: round_robin #轮询
      # 最终的数据源名称
      name: dataSource
      # 主库数据源名称
      master-data-source-name: master
      # 从库数据源名称列表,多个逗号分隔
      slave-data-source-names: slave
    props:
      sql:
        show: true #开启SQL显示,默认false
3、在配置文件中配置允许bean定义覆盖配置项
main:
  #允许bean定义覆盖解决数据源冲突
  allow-bean-definition-overriding: true

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值