博客
关于我
mysql配置读写分离并在若依框架使用读写分离
阅读量:801 次
发布时间:2023-02-13

本文共 3071 字,大约阅读时间需要 10 分钟。

MySQL主从复制环境配置及数据库优化指南

1. 环境搭建

1.1 MySQL安装

本次测试使用 MySQL 8.0.29。建议使用 navcat 16 作为数据库工具。navcat 12 及以下版本在连接 MySQL 时会存在密码加密方式与 MySQL 不一致的问题,可能导致登录失败。因此,建议使用 navcat 15 或更高版本。

1.2 主机与从机安装

  • 操作系统:安装 MySQL 8.0.29
  • 工具:使用 navcat 16

2. MySQL 配置

2.1 查找 my.ini 文件位置

在 Windows 环境下,可以通过以下方式查找 my.ini 文件的存放地址:

  • 在 MySQL 客户端中执行查询:SHOW VARIABLES LIKE '%data%';
  • 例如,我的 my.ini 文件位于:D:\ProgramData\MySQL\MySQL Server 8.0

2.2 修改主机 my.ini

[mysqld] 节点中,添加以下配置:

server-id=1log-bin=mysql-binbinlog_do_db=rpa-cloud

2.3 重启 MySQL 服务

  • 保存修改后的 my.ini 文件。
  • 重启 MySQL 80 服务,建议同时重启主机以确保配置生效。

2.4 用户权限管理

  • 使用 MySQL 客户端工具创建用户:
    GRANT system_user ON *.* TO 'root'@'localhost';FLUSH PRIVILEGES;
  • 创建从库用户:
    CREATE USER 'salve'@'192.168.20.46' IDENTIFIED BY '123456';GRANT ALL PRIVILEGES ON *.* TO 'salve'@'192.168.20.46';FLUSH PRIVILEGES;
  • 更新用户密码加密方式:
    UPDATE mysql.user SET plugin='mysql_native_password' WHERE user='salve';FLUSH PRIVILEGES;

2.5 从库创建

  • 在从机上使用 navcat 16 连接主库,使用 salve 账户验证是否成功。

2.6 从库配置

  • 修改从库 my.ini
    server-id=2replicate-do-db=rpa-cloudreplicate-ignore-db=mysql
  • 重启 MySQL 80 服务。
  • 使用 navcat 16 连接主库,确保连接成功。

3. 数据库状态监控

  • 查询主库状态:
    SHOW MASTER STATUS;
  • 期望输出:
    • Slave_IO_Running: Yes
    • Slave_SQL_Running: Yes

4. 高级配置

  • Spring 配置中,添加数据库连接池设置:
    spring:  redis:    host: localhost    port: 6379    password: 123456  datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/rp-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT+8    username: root    password: 123456    type: com.alibaba.druid.pool.DruidDataSource    druid:      master:        url: jdbc:mysql://localhost:3306/rp-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT+8        username: root        password: 123456        enabled: true      slave:        url: jdbc:mysql://192.168.20.46:3306/rp-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT+8        username: root        password: 123456        enabled: true      initialSize: 5      minIdle: 10      maxActive: 2000      maxWait: 60000      timeBetweenEvictionRunsMillis: 60000      minEvictableIdleTimeMillis: 300000      maxEvictableIdleTimeMillis: 900000      validationQuery: SELECT 1 FROM DUAL      testWhileIdle: true      testOnBorrow: false      testOnReturn: false      webStatFilter:        enabled: true        statViewServlet:          enabled: true        allow:          url-pattern: /druid/*      login-username: ruoyi      login-password: 123456      filter:        stat:          enabled: true        slow-sql-millis: 1000        slow-sql-log: true        merge-sql: true      wall:        config:          multi-statement-allow: true      servlet:        multipart:          enabled: true          location: D:/rpatempdir          max-file-size: 1000MB          max-request-size: 1000MB          file-size-threshold: 0          resolve-lazily: false

5. 其他注意事项

  • 确保主从库网络互通。
  • 定期检查从库状态:SHOW SLAVE STATUS \G;
  • 配置 MySQL 运行日志,方便故障排查。
  • 建议设置自动化监控工具(如 PrometheusZabbix)进行数据库状态监控和告警。

转载地址:http://qmdfk.baihongyu.com/

你可能感兴趣的文章
Nginx的使用总结(二)
查看>>
Nginx的使用总结(四)
查看>>
Nginx的可视化神器nginx-gui的下载配置和使用
查看>>
nginx的平滑升级方法:
查看>>
Nginx的是什么?干什么用的?
查看>>
Nginx的端口修改问题
查看>>
Nginx的配置文件位置以及组成部分结构讲解
查看>>
nginx看这一篇文章就够了
查看>>
Nginx知识详解(理论+实战更易懂)
查看>>
Nginx简单介绍
查看>>
Nginx系列6之-rewirte功能使用案例总结
查看>>
nginx线程模型理解
查看>>
nginx自动摘除和恢复后端服务,进行自动检测
查看>>
Nginx虚拟主机配置
查看>>
Nginx虚拟目录配置文件(包含PHP配置与重写)
查看>>
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx访问控制配置
查看>>
nginx负载均衡
查看>>
Nginx负载均衡
查看>>
Nginx负载均衡与动静分离架构实现
查看>>