You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0.27 my.cnf中transaction-isolation配置不生效求助

问题:MySQL 8.0.27(Ubuntu 20.04)my.cnf中transaction-isolation配置被忽略

在Ubuntu 20.04上运行MySQL 8.0.27时,发现my.cnf中的transaction-isolation配置被忽略——服务启动后事务隔离级别仍保持默认的REPEATABLE-READ,但运行时可以正常修改该级别。

已完成的排查操作

  • 确认系统仅存在一个my.cnf文件,且文件中除transaction-isolation外的其他配置项,重启服务后均能正常生效;
  • 将log_error_verbosity设为3后查看错误日志,未找到任何与事务隔离级别相关的报错或提示信息;
  • 将相同的my.cnf文件部署到另一台同版本MySQL和Ubuntu系统的服务器,重启服务后transaction_isolation值可正常更新;
  • 当前使用默认sql_mode。

解决思路

1. 检查配置项的拼写与格式

确认my.cnf中配置项的写法完全符合规范:MySQL 8.0配置文件中需用短横线分隔的transaction-isolation,对应值需用全大写+短横线格式(如READ-COMMITTED、SERIALIZABLE),示例:

transaction-isolation = READ-COMMITTED

避免将运行时变量名transaction_isolation(下划线分隔)直接写到配置文件中。

2. 排查配置文件加载优先级

MySQL可能会加载多个路径下的配置文件,即使你认为只有一个my.cnf。执行以下命令查看实际加载的配置文件列表:

mysqld --help --verbose | grep -A 10 "Default options"

检查输出中的文件路径,确认是否有其他配置文件(如/etc/mysql/mysql.conf.d/mysqld.cnf、~/.my.cnf)覆盖了transaction-isolation的设置。

3. 检查启动命令行参数

查看MySQL服务的启动参数,命令行参数优先级高于配置文件。执行以下命令查看启动命令:

systemctl status mysql

在ExecStart行中检查是否存在--transaction-isolation参数,若有则删除该参数,重启服务后配置文件的设置会生效。

4. 手动指定配置文件启动测试

尝试手动指定my.cnf路径启动MySQL,验证是否是服务启动时加载路径错误:

sudo systemctl stop mysql
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql &

启动后查询transaction_isolation,若生效则检查systemd服务文件(通常是/lib/systemd/system/mysql.service)中的ExecStart配置,确认是否指定了正确的defaults-file路径。

5. 检查文件权限与安全策略

确认my.cnf的权限允许MySQL进程读取:

ls -l /etc/my.cnf

正常权限应为644,所有者为root:root。若系统开启了SELinux(Ubuntu默认关闭,但需确认),可临时关闭测试:

sudo setenforce 0

重启MySQL后若配置生效,需调整SELinux策略以允许MySQL读取配置文件。

6. 检查持久化变量表

极少数情况下,mysql.persisted_variables表中的记录会覆盖配置文件设置。执行SQL查询:

SELECT * FROM mysql.persisted_variables WHERE VARIABLE_NAME = 'transaction_isolation';

若存在该记录,删除后重启MySQL:

DELETE FROM mysql.persisted_variables WHERE VARIABLE_NAME = 'transaction_isolation';

操作前建议备份该表。

内容的提问来源于stack exchange,提问作者Sanjay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:03:25