当前位置: 首页 > article >正文

MySQL :参数修改

目录

  • 报错情况及解决办法
        • 1. `SET PERSIST log_bin_use_v1_row_events=ON;`
        • 2. `SET PERSIST innodb_buffer_pool_load_at_startup=ON;`
      • MySQL 参数修改的全面说明
        • 1. 修改方式
        • 2. 可修改参数的类型
        • 3. 确认修改结果
        • 4. 注意事项
  • MySQL参数可以从不同维度进行分类,常见的有以下几种分类方式及对应的设置方法:
      • 一、按作用范围分类
      • 二、按功能分类
      • 三、存储过程参数类型(特殊参数类型)
      • 官方文档说明

在 MySQL 中对参数进行修改时,常常会碰到各种报错,下面为你详细整理并说明之前遇到的报错以及 MySQL 参数修改的全面信息。

报错情况及解决办法

1. SET PERSIST log_bin_use_v1_row_events=ON;

报错信息

ERROR 1238 (HY000): Variable 'log_bin_use_v1_row_events' is a non persistent variable
Warning (Code 1287): '@@log_bin_use_v1_row_events' is deprecated and will be removed in a future release.
Error (Code 1238): Variable 'log_bin_use_v1_row_events' is a non persistent variable

原因

  • log_bin_use_v1_row_events 属于非持久化变量,不支持用 SET PERSIST 语句进行持久化设置。
  • 该变量已被弃用,未来版本会移除。
    解决办法
  • 动态修改:使用 SET GLOBAL log_bin_use_v1_row_events = ON; 在当前会话或者本次 MySQL 运行期间修改该变量的值。
  • 修改配置文件:在 my.cnf 或者 my.ini[mysqld] 部分添加 log_bin_use_v1_row_events = ON,然后重启 MySQL 服务器。
  • 考虑替代方案:查看 MySQL 官方文档,寻找该变量的替代配置。
2. SET PERSIST innodb_buffer_pool_load_at_startup=ON;

报错信息

ERROR 1238 (HY000): Variable 'innodb_buffer_pool_load_at_startup' is a read only variable

原因innodb_buffer_pool_load_at_startup 是只读变量,无法使用 SET PERSIST 语句进行修改。
解决办法

  • 修改配置文件:在 my.cnf 或者 my.ini[mysqld] 部分添加 innodb_buffer_pool_load_at_startup = ON,然后重启 MySQL 服务器。
  • 确认修改结果:使用 SHOW VARIABLES LIKE 'innodb_buffer_pool_load_at_startup'; 确认变量值是否修改成功。

MySQL 参数修改的全面说明

1. 修改方式
  • 动态修改:使用 SET GLOBAL 语句在运行时动态修改参数的值,示例如下:
SET GLOBAL max_connections = 500;

这种修改方式仅在当前 MySQL 会话期间有效,当 MySQL 服务器重启之后,参数会恢复到配置文件中设置的值。

  • 持久化修改
    • SET PERSIST:在 MySQL 8.0 及以上版本中,使用 SET PERSIST 语句可以将参数值持久化到 auto.cnf 文件,示例如下:
SET PERSIST max_connections = 500;

不过,并非所有参数都支持 SET PERSIST,只有部分可动态修改的全局变量支持。
- 修改配置文件:直接修改 MySQL 的配置文件(my.cnf 或者 my.ini),在 [mysqld] 部分添加或修改参数,然后重启 MySQL 服务器,新的参数设置才会生效。

2. 可修改参数的类型
  • 可动态修改的全局变量:这类变量可以在 MySQL 服务器运行时进行修改,并且部分可以使用 SET PERSIST 进行持久化设置,例如 max_connectionsinnodb_buffer_pool_size 等。
  • 只读变量:这类变量不能被用户修改,如 protocol_version 等。
  • 会话变量:针对每个客户端会话特定的变量,不能使用 SET PERSIST 进行持久化设置。
3. 确认修改结果
  • 查看当前变量值:使用 SHOW VARIABLES LIKE '变量名'; 查看当前参数的值。
  • 确认持久化设置:可以通过查询 performance_schema.persisted_variables 表来确认参数是否已持久化。
4. 注意事项
  • 备份配置文件:在修改配置文件之前,最好备份原配置文件,以防修改出错导致 MySQL 无法启动。
  • 重启影响:修改配置文件后需要重启 MySQL 服务器,这可能会影响正在运行的业务,建议在维护窗口进行操作。
  • 参数依赖:某些参数之间可能存在依赖关系,修改一个参数可能会影响其他参数的行为,需要谨慎操作。

总之,在修改 MySQL 参数时,需要根据参数的类型和具体需求选择合适的修改方式,同时要注意修改的影响和可能出现的问题。

MySQL参数可以从不同维度进行分类,常见的有以下几种分类方式及对应的设置方法:

一、按作用范围分类

  • 全局参数:对整个MySQL实例生效。例如max_connections(最大连接数量)、innodb_buffer_pool_size(InnoDB存储引擎缓存池的大小)等。
    • 查看方法:使用SHOW GLOBAL VARIABLES;命令查看当前值设置 。
    • 设置方法
      • 配置文件:在MySQL的配置文件(一般是my.cnfmy.ini,具体取决于操作系统)中的[mysqld] 组下修改。例如,要将最大连接数设置为500,缓存池大小设置为2GB,可以这样写:
[mysqld]
max_connections=500
innodb_buffer_pool_size=2G
    - **SQL命令**:使用`SET GLOBAL 参数名 = 值;`语句设置,但这种方式设置的参数在MySQL服务重启后会失效。例如:`SET GLOBAL max_connections = 500;`
  • 会话参数:只对特定的会话或连接生效。例如wait_timeout(连接的超时时间)等。
    • 查看方法:使用SHOW SESSION VARIABLES;查看当前会话的参数值,也可以使用SHOW VARIABLES;,该命令会同时显示全局参数和会话参数 。
    • 设置方法
      • 配置文件:同样在配置文件中设置,不过会话参数的设置相对复杂,可能需要特定的插件或配置方式来实现对会话的全局预设。
      • SQL命令:使用SET SESSION 参数名 = 值;语句,只对当前会话有效。例如:SET SESSION wait_timeout = 1800;

二、按功能分类

  • 连接相关参数:如max_connections(最大连接数)、wait_timeout(连接超时时间)等,用于控制客户端与MySQL服务器的连接情况。
  • 内存相关参数key_buffer(MyISAM存储引擎的键缓存大小)、innodb_buffer_pool_size(InnoDB存储引擎缓存池大小)等,用来管理MySQL使用的内存资源。
  • 查询优化相关参数query_cache_size(查询结果缓存大小)、join_buffer_size(连接缓存大小)等,帮助优化查询性能。
  • 事务相关参数innodb_support_xa(是否支持分布式事务)等,与事务处理相关。

三、存储过程参数类型(特殊参数类型)

  • 输入参数(IN):用于向存储过程传递数据,存储过程内部可以读取该参数的值,但不能修改它。
  • 输出参数(OUT):用于从存储过程返回数据,存储过程内部可以修改该参数的值,调用者可以读取该参数的值。
  • 输入输出参数(INOUT):既可以向存储过程传递数据,又可以从存储过程返回数据,存储过程内部可以读取和修改该参数的值,调用者也可以读取和修改该参数的值。
    • 设置方法:使用CREATE PROCEDURE语句创建存储过程时定义参数。示例如下:
DELIMITER //
CREATE PROCEDURE my_procedure(IN param1 INT, OUT param2 VARCHAR(50), INOUT param3 DECIMAL(10,2))
BEGIN 
    -- 存储过程的逻辑代码
END //
DELIMITER ;

官方文档说明

可以通过MySQL官方网站查看详细的参数说明:https://dev.mysql.com/doc/refman/当前版本号/en/ ,在该文档中搜索具体的参数名,即可查看该参数的作用、默认值、取值范围以及设置建议等内容 。比如查看max_connections参数,在文档搜索框中输入“max_connections”,就能找到关于它的详细介绍。

log_bin_trust_function_creators


http://www.kler.cn/a/592009.html

相关文章:

  • GoT:当AI学会“先想后画“,视觉生成的推理革命来了
  • AI爬虫 :Crawl4AI的安装和详细使用案例(开源 LLM 友好型网络爬虫)
  • Odoo 18 中的列表(list) 、表单(Form)、数据透视表、图表视图、看板视图、活动视图、日历视图等综合应用实例
  • STM32配套程序接线图
  • 让双向链表不在云里雾里
  • 【数学建模】层次分析法(AHP)详解及其应用
  • docker overlay2 文件夹比较大怎么处理
  • 【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐
  • 关于单一职责原则
  • docker run 命令常用参数
  • SpringCloud 学习笔记3(OpenFeign)
  • OSG简介
  • 电信大带宽服务器的应用场景都有哪些?
  • vue中js简单创建一个事件中心/中间件/eventBus
  • Zabbix安装(保姆级教程)
  • 学习Python如何高效处理CSV文件的技巧!
  • Docker 和 Docker Compose 的关系
  • 可视化图解算法:链表中倒数(最后)k个结点
  • 使用py-ffmpeg批量合成视频的脚本
  • CentOS7 安装 jdk8(Java安装)