MySQL的读写分离的配置

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

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

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

一 、 读写分离的配置步骤:(此处使用的是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

经过以上配置项目就实现了读写分离的配置。 

相关推荐

  1. mysqlAltas分离(实战配置版)

    2024-02-22 14:38:03       37 阅读
  2. MySQL 分离教程

    2024-02-22 14:38:03       22 阅读
  3. mysql分离

    2024-02-22 14:38:03       31 阅读
  4. MySQL 分离过期问题及其解决方案

    2024-02-22 14:38:03       21 阅读
  5. 数据库分离是个什么mysql怎么配置

    2024-02-22 14:38:03       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 14:38:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 14:38:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 14:38:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 14:38:03       20 阅读

热门阅读

  1. 算法:带权重随机算法

    2024-02-22 14:38:03       26 阅读
  2. spring和springboot的区别,简单直接

    2024-02-22 14:38:03       27 阅读
  3. Python程序员面试准备:八股文题目与解答思路

    2024-02-22 14:38:03       29 阅读
  4. LINUX下载安装go

    2024-02-22 14:38:03       32 阅读
  5. Flutter 启动流程解析

    2024-02-22 14:38:03       27 阅读
  6. 游戏物理引擎+特效系统

    2024-02-22 14:38:03       30 阅读
  7. c++用户管理信息(双向链表)

    2024-02-22 14:38:03       29 阅读
  8. ip相关工具类

    2024-02-22 14:38:03       32 阅读