MySQL的读写分离的配置

这篇具有很好参考价值的文章主要介绍了MySQL的读写分离的配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL读写分离就是创建不同的几个数据库来实现读的时候是一个数据库,写的时候是另一个数据库,提升系统的允许效率,读写分离运用了MySQL的主从复制

主从复制的含义:就是将主库的数据同步到从库的数据,从而保证从库的数据和主库的数据保持一致。

主从复制的原理:MySQL主从复制是一个异步的复制过程,底层是基于MySQL数据库自带的二进制日志功能,就是一台或者多台的数据库(从库)从另一台数据库(主库)进行日志的复制再解析日志并应用到自身,最终实现从库和主库的数据保持一致。

MySQL的读写分离的配置,各个技能,mysql,数据库,java,idea,后端

一 、 读写分离的配置步骤:(此处使用的是Linux虚拟机)

第一步:创建两台Linux虚拟机,并安装上MySQL数据库(自行安装)

第二步:在Linux中配置其中一个MySQL为主库

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

        2、在当前的配置文件中加入以下配置

        [mysqld]

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

        server-id=100                   含义:  服务器唯一id

        3、重启服务

systemctl restart mysqld 

        4、创建用户,用于从库和主库之间的通信

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

以上创建是创建一个用户xiaoming ,密码是Root@123456  ,并且给xiaoming用户授权REPLICATION SLAVE 权限。 常用户建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制

        5、登录MySQL数据库,执行下面的SQL,记录下结果中File 和Position的值

show master status 

【注意】:执行完这步以后就不要再执行任何操作。当前虚拟机就停留在当前步骤

第三步:在Linux中配置从库(此时在另一个虚拟机中,不是相同的虚拟机)

        1、修改配置文件 /etc/my.cnf

[mysqld]

server-id=101                        含义:服务器id必须唯一

        2、重启MySQL的服务

 systemctl restart mysqld 

        3、执行下面的SQL,其中那个master_host 是我们自己主库的ip,那个master_log_file 、master_log_pos也是我们自己的(主库的)

change master to master_host='192.168.190.141',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=441;

        4、最后执行一句

start slave;

        5、登录MySQL数据库,执行执行下面的SQL,查看从数据库的状态,如果在Linux中查看比较混乱,那么复制执行出来的数据到另一个软件中查看,就不会混乱

如果Slave_IO_Running 和Slave_SQL_Running 都为yes,则说明配置成功

show slave status; 

 第四步:测试,测试就是打开我们的windows的数据库软件,去连接Linux中数据库,连接成功以后,完后在主库创建一个表,完后再刷新从库如果出现相同的数据库那么就是配置成功。

二 、在IDEA中实现配置数据库的读写分离,从而来实现项目的读写分离 

 在IDEA中配置读写分离是通过Sharding-JDBC来实现的

第一步:导入Sharding-JDBC的依赖

<dependency>

         <groupId>org.apache.shardingsphere</groupId>

         <artifactId>sharding-jdbc-spring-boot-starter</artifactId>

         <version>4.0.0-RC1</version>

</dependency>

 第二步:在配置文件中配置数据源以及读写分离的配置

spring:
    shardingsphere:
        datasource:
            names:
                master,slave
                # 主数据源,那个url就是我们Linux中的ip地址
            master:
                type: com.alibaba.druid.pool.DruidDataSource
                driver-class-name: com.mysql.jdbc.Driver
                url: jdbc:mysql://192.168.138.100:3306/rw?characterEncoding=utf-8
                username: root
                password: root
                # 从数据源
            slave:
                type: com.alibaba.druid.pool.DruidDataSource
                driver-class-name: com.mysql.jdbc.Driver
                url: jdbc:mysql://192.168.138.101:3306/rw?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

        main:
                 allow-bean-definition-overriding: true

经过以上配置项目就实现了读写分离的配置。 文章来源地址https://www.toymoban.com/news/detail-836518.html

到了这里,关于MySQL的读写分离的配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库】mysql主从复制与读写分离

      读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE ),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。   因为数据库的\\\"写”(写10000条数据可能要3分钟)操作是比较耗时的。   

    2024年02月11日
    浏览(59)
  • 【数据库七】MySQL主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作 (insert、update、delete),而 从数据库处理select查询操作 。 数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据

    2024年02月11日
    浏览(52)
  • 看!MySQL 8.2 数据库支持读写分离啦!

    MySQL 8.2.0创新版本已于2023-10-17发布,MySQL Router 8.2 支持数据库的读/写分离,这里将在InnoDB Cluster集群中演示数如何进行读写分离,本篇内容包括:MySQL Server数据库安装、MySQL Shell安装、MySQL Router安装、InnoDB Cluster安装与读写分离演示,若您只关注读写分离的演示,可直接跳至最

    2024年02月05日
    浏览(152)
  • 华为云数据库 RDS for MySQL 的读写分离,凭什么打破企业数据瓶颈?

    随着云2.0时代的到来,众多企业发现人工智能、大数据算法能为企业发展带来巨大的利润,人工智能、大数据算法等计算机算法被应用于企业的生产和发展,云+业务逐渐成为现代化企业发展的潮流,对传统数据库模式提出了挑战。 企业的业务从线下发展到线上,这就使得服

    2024年02月22日
    浏览(43)
  • spring boot shardingsphere mybatis-plus druid mysql 搭建mysql数据库读写分离架构

    ##关于window mysql主从搭建简单教程 传送门 window mysql5.7 搭建主从同步环境-CSDN博客 ##父pom.xml ##模块pom.xml ##yml配置 ##mapper.xml ##TestMapper ##TestService ##TestController ##浏览器访问 ##数据库

    2024年01月21日
    浏览(59)
  • MySQL一主一从、配置一主多从结构、数据读写分离

    部署mysql主从同步 配置mysql主从 分为主数据库角色(master)、从数据库服务器角色(slave) 网站服务器连接后存储数据的服务器作为主服务器 自动同步主服务器上的数据 192.168.88.53 做master 启用binlog日志文件 指定server_id 重启服务 用户授权 查看正在使用的binlog日志文件 192.

    2024年01月19日
    浏览(31)
  • MySQL的读写分离的配置

    MySQL读写分离 就是创建不同的几个数据库来实现读的时候是一个数据库,写的时候是另一个数据库,提升系统的允许效率, 读写分离运用了MySQL的主从复制 主从复制的含义 :就是将主库的数据同步到从库的数据,从而保证从库的数据和主库的数据保持一致。 主从复制的原理

    2024年02月22日
    浏览(25)
  • Mysql - 配置Mysql主从复制-keepalived高可用-读写分离集群

    目录 高可用: 为什么需要高可用呢? 高可用的主要作用: keepalived是什么?它用在哪里? 什么是VRRP协议,它的作用是什么? 搭建一个基于keepalived的高可用Mysql主从复制读写分离集群 一、项目中的IP地址配置表: 二、项目拓扑图: 项目步骤:(主从复制、读写分离、单vi

    2024年02月13日
    浏览(37)
  • 8 - MySQL数据读写分离|MySQL多实例

    1 - 数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型 2 - 表结构 | MySQL键值 3 - 字段约束|MySQL索引|MySQL用户管理 4 - 基础查询进阶|连接查询 5 - 视图|存储过程 6 - 数据备份与恢复|innobackupex 7 - MySQL主从同步|主从同步模式 8 - MySQL数据读写分离|MySQL多实例

    2024年01月20日
    浏览(28)
  • MySQL 中读写分离数据延迟

    MySQL 中读写分离可能遇到的问题 前言 读写分离的架构 基于客户端实现读写分离 基于中间代理实现读写分离 MySQL 中如何保证主从数据一致 循环复制问题 主从同步延迟 主从同步延迟的原因 主从延迟如何处理 强制走主库方案 Sleep 方案 判断主从无延迟方案 配合semi-sync 等主库

    2024年02月03日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包