博客
关于我
mysql配置读写分离并在若依框架使用读写分离
阅读量:789 次
发布时间: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/

你可能感兴趣的文章
mysql导入数据库出现:Incorrect string value: '\xE7\x82\xB9\xE9\x92\x9F' for column 'chinese' at row 1...
查看>>
mysql导入(ibd文件)
查看>>
Mysql工作笔记006---Mysql服务器磁盘爆满了_java.sql.SQLException: Error writing file ‘tmp/MYfXO41p‘
查看>>
MySQL底层概述—5.InnoDB参数优化
查看>>
MySQL底层概述—6.索引原理
查看>>
MySQL底层概述—7.优化原则及慢查询
查看>>
MySQL底层概述—8.JOIN排序索引优化
查看>>
MySQL底层概述—9.ACID与事务
查看>>
Mysql建立中英文全文索引(mysql5.7以上)
查看>>
Mysql当前列的值等于上一行的值累加前一列的值
查看>>
MySQL当查询的时候有多个结果,但需要返回一条的情况用GROUP_CONCAT拼接
查看>>
MySQL必知必会(组合Where子句,Not和In操作符)
查看>>
MySQL必知必会总结笔记
查看>>
MySQL快速入门——库的操作
查看>>
mysql快速复制一张表的内容,并添加新内容到另一张表中
查看>>
mysql快速查询表的结构和注释,字段等信息
查看>>
mysql怎么删除临时表里的数据_MySQL中关于临时表的一些基本使用方法
查看>>
mysql性能优化
查看>>
MySQL性能优化必备25条
查看>>
Mysql性能优化(1):SQL的执行过程
查看>>