栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL读写分离

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL读写分离

读写分离 1、MySQL主从复制

介绍:

MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。


配置主库:

第一步:修改MySQL数据库的配置文件/etc/my.cnf

log-bin=mysql-bin   #[必须]启用二进制日志
server-id = 100     #[必须]服务器唯一ID

第二步:重启MySQL服务

systemctl restart mysqld

第三步:登录MySQL数据库,执行下面的SQL

-- 创建用于主从复制的用户,slave = 用户名  % = 代表所有IP都可以连接(可换成具体ip)  123456 = 密码
CREATE USER 'slave'@'%' IDENTIFIED with mysql_native_password by '1111';
-- 为该用户赋予权限
GRANT replication slave on *.* to 'slave'@'%';
-- 刷新配置
FLUSH PRIVILEGES;
-- 查看创建的用户是否存在
use mysql;
select user, host from user;
-- 查看当前binlog节点及position值
show master status;

配置从库Slave

第一步:修改MySQL数据库的配置文件

server-id = 101     #[必须]服务器唯一ID

第二步:重启MySQL服务

第三步:登录MySQL,执行下面的SQL

-- 添加主数据库信息及读取binlog的节点信息
CHANGE MASTER TO MASTER_HOST = '47.112.138.176',
MASTER_USER = 'slave',
MASTER_PASSWORD = '1111',
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 988
-- 启动从库
START SLAVE;
-- 查看主从状态
SHOW SLAVE STATUS;
2、读写分离案例(Sharding-JDBC) 1、Sharding-JDBC介绍

2、Sharding-JDBC入门案例

1、导入依赖:


    org.apache.shardingsphere
    sharding-jdbc-spring-boot-starter
    4.0.0-RC1

2、在配置文件中配置读写分离规则

spring:
  shardingsphere:
    datasource:
      names:
        master,slave
      # 主数据源
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://ip/rw?serverTimezone=Asia/Shanghai
        username: root
        password: 1111
      # 从数据源
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/rw?serverTimezone=Asia/Shanghai
        username: root
        password: 1111
    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:
    allow-bean-definition-overriding: true
3、项目实现读写分离

1、导入依赖:


    org.apache.shardingsphere
    sharding-jdbc-spring-boot-starter
    4.0.0-RC1

2、在配置文件中配置读写分离规则

spring:
  shardingsphere:
    datasource:
      names:
        master,slave
      # 主数据源
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://ip/reggie?serverTimezone=Asia/Shanghai
        username: root
        password: 1111
      # 从数据源
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai
        username: root
        password: 1111
    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:
    allow-bean-definition-overriding: true

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号