mysql 主从复制

 

主要就是分担压力

master(主库)负责后台维护 增删改

salve(从库 英语翻译 下属 奴隶 也就是主要干活得)负责读(大部分得工作都是select)

两个库分担压力 减小负荷并且保证数据安全(也可以多个从库)

master 主库 通过sql自带得二进制日志 异步slave(从库)保证两库同步 

具体操作 

需要两台服务器 

1.主库操作 

vim /etc/my.cfn

log-bin=mysql-bin   #开启二进制日志

server-id=100         #服务器唯一id(可以任何数 保证id唯一即可)

 

2.systemctl restart mysqld 

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

创建一个被master认可得(可复制master)得奴隶 xiaoming

file  当前日志得名称

position 当前日志得位置 

配置从库

1.vim /etc/my.cnf

server-id=101 #服务器唯一id 

2.systemctl restart mysqld

注意 自己得 ip 。file。 master log pos 

show slave status;

关于测试  

可以在navicat 等  在主库 增删改查 库 表 数据 等 看看两个库是否同步

读写分离 具体案例

maven工程 只需导入上述依赖即可 

配置项目相对应得表 

<dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.0.0-RC1</version>
        </dependency>
server:
  port: 8080

mybatis-plus:
  configuration:
    #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      id-type: ASSIGN_ID
spring:
  shardingsphere:
    datasource:
      names:
        master,slave
      # 主数据源
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.130.128:3306/rw?characterEncoding=utf-8
        username: root
        psaaword: root
      # 从数据源
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.130.130:3306/rw?characterEncoding=utf-8
        username: root
        psaaword: root
    masterslave:
      # 读写分离配置
      load-balance-algorithm-type: round_robin
      # 最终得数据源名称
      name: datasource
      # 主库数据源名称
      master-data-source-name: master
      # 从库数据源名称列表,多个逗号分隔
      slave-date-source-names: slave
    props:
      sql:
        show: true #开启sql显示,默认false
  main:
    #允许bean定义覆盖配置项
    allow-bean-definition-overriding: true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值