news 2026/9/14 18:37:06

Beekeeper Studio 手动事务的超时与自动回滚参数怎么配置?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Beekeeper Studio 手动事务的超时与自动回滚参数怎么配置?

Beekeeper Studio 手动事务的超时与自动回滚参数怎么配置?

【免费下载链接】beekeeper-studioModern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.项目地址: https://gitcode.com/GitHub_Trending/be/beekeeper-studio

如果你在 Beekeeper Studio 的 SQL Editor 中开启了手动提交(Manual Commit)模式,长时间不操作的事务会被自动回滚,回滚前还会收到一次警告。要调整“多久回滚”和“提前多久提醒”,需要修改 INI 配置文件中的manualTransactionTimeoutautoRollbackWarningWindow两个参数,而不是在界面上找开关——文档明确说明这两个默认值只能通过 config file 修改。

先理解手动事务的超时机制

根据 Manual Transaction Management 文档,手动模式下:

  • 进入该模式后,每条查询都处于事务中,必须CommitRollback变更才会写入数据库;
  • 事务开始后,Beekeeper 会为当前标签页预留一条连接(从数据库连接池分配),以保证上下文不丢失,此时编辑器左下角出现CommitRollback按钮;
  • 作为预防措施,每个事务都有超时限制:默认 10 分钟无活动即触发自动回滚,回滚前有 1 分钟的警告期。也就是说默认情况下,事务开启约 9 分钟后你会收到通知,提示你要么结束事务、要么让它再保留 10 分钟。

这套功能当前仅支持 Postgres、CockroachDB、Redshift、MySQL、MariaDB、SQLServer、Firebird 和 Oracle,其余数据库类型不适用。

三个可配置参数及其含义

configuration.md 与手动事务文档给出的配置项如下(来自文档示例):

[db.default] ; Max number of manual transactions to allow at a time ; This should be kept below the max pool size for the database, as these connections ; are pulled from that pool maxReservedConnections = 2 ; Allow two active transactions at a time ; How long to keep a transaction open without any activity before automatically rolling it back in manual commit mode manualTransactionTimeout = 600000 ; 10 Minutes ; The amount of time before an automatic rollback to warn the user that it is about to happen autoRollbackWarningWindow = 60000 ; 1 Minute [db.postgres] maxReservedConnections = 4 ; Allow 4 active transactions at a time (only for postgres)
  • manualTransactionTimeout:手动提交模式下,事务无活动状态下允许保持打开的时长(毫秒),超过后自动回滚。默认值600000(10 分钟)。
  • autoRollbackWarningWindow:距离自动回滚还有多久时开始向用户发出警告(毫秒)。默认值60000(1 分钟)。
  • maxReservedConnections:同时允许多少个手动事务。文档特别提醒该值应低于数据库的最大连接池大小,因为这些预留连接就是从池中取出的。

配置写在[db.default]段时对所有数据库类型生效;也可以写在具体的数据库段(如[db.postgres])只为该类型设置。INI 语法要求段名用[方括号]=两边留空格。

在哪里修改配置

Beekeeper Studio 使用 INI 三层配置:Default(随应用发布的基线值)→ User(个人定制)→ Administrator(机器级,管理员控制),加载顺序决定覆盖关系:Admin 覆盖 User,User 覆盖 Default。修改超时参数应写入 User 或 Administrator 配置文件。

各平台配置文件位置(config_file_directories.md):

平台User 配置Admin 配置
MacOS~/Library/Application Support/beekeeper-studio/user.config.ini/Library/Application Support/beekeeper-studio/system.config.ini
Linux~/.config/beekeeper-studio/user.config.ini/etc/beekeeper-studio/system.config.ini
Windows%APPDATA%\beekeeper-studio\user.config.iniC:\ProgramData\beekeeper-studio\system.config.ini

以 Linux 为例,把上文示例中需要的参数追加到~/.config/beekeeper-studio/user.config.ini(文件不存在就新建):

[db.default] manualTransactionTimeout = 1200000 ; 20 Minutes autoRollbackWarningWindow = 60000 ; 1 Minute

改完后保存文件,完全重启 Beekeeper Studio,新设置才会生效——这是配置系统的要求,只关窗口不够。

验证配置是否生效

文档没有提供独立的健康检查命令,验证方式就是观察手动事务的运行时行为:

  1. 在 SQL Editor 左下角切到手动提交模式,点击Begin开始一个事务(或直接执行查询,Beekeeper 会自动为查询加上 begin 语句);
  2. 让事务保持无活动状态,等待到你配置的manualTransactionTimeout - autoRollbackWarningWindow附近:此时应弹出通知,提示你结束事务或让它继续保留;
  3. 若在警告窗口结束前仍未处理,事务会被自动回滚——此时编辑器上的事务状态即被清除。

如果修改后行为没有变化,configuration.md 列出的排查项是:文件是否放在了操作系统对应的正确目录、INI 语法是否正确(段头、=两侧空格)、是否做了完整重启、段名或键名有无拼写错误、文件权限是否可读,以及开启 debug logging 查看配置加载细节。

相关限制

  • 手动事务超时机制只在上述 8 种数据库上可用,配置对其他数据库类型没有效果;
  • maxReservedConnections的预留连接来自数据库连接池,调高它会占用池内更多连接,文档建议保持低于最大池大小;
  • 三层配置意味着即使你改了 User 配置,机器级的 Admin 配置仍会覆盖它,团队环境下需要确认管理员配置里没有同名参数。

【免费下载链接】beekeeper-studioModern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.项目地址: https://gitcode.com/GitHub_Trending/be/beekeeper-studio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 18:36:17

Promise原理与应用:从回调地狱到异步编程优雅解决方案

1. 为什么我们需要Promise?2009年,当Node.js首次将JavaScript引入服务器端开发时,回调地狱(Callback Hell)问题开始凸显。开发者们经常需要处理这样的代码:getData(function(a){getMoreData(a, function(b)…

作者头像 李华
网站建设 2026/9/14 18:32:41

Rufus 三步做出免 TPM 的 Windows 11 安装盘完整指南

Rufus 三步做出免 TPM 的 Windows 11 安装盘完整指南 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus Rufus 是一款 USB 安装盘制作工具:GPLv3 开源、单 exe 文件、免安装,…

作者头像 李华
网站建设 2026/9/14 18:32:21

工业智能体:从“工具”到“自主实体”,如何重塑AI+制造新范式?

1. 底层逻辑:工业智能体到底解决了什么问题,为什么偏偏是现在1.1 从“工具”到“智能体”:工业软件的定位变了做工业自动化和信息化的人,过去十年其实都在同一个框架里打转:MES管生产执行,ERP管资源计划&am…

作者头像 李华
网站建设 2026/9/14 18:31:19

SpringBoot社区生鲜配送系统架构设计与实践

1. 项目背景与核心价值社区生鲜配送系统正在重塑城市居民的消费习惯。去年我参与的一个社区团购项目上线后,仅三个月就实现了日均订单量从200单到2000单的爆发式增长。这种基于SpringBoot的轻量级解决方案,完美契合了后疫情时代"线上下单即时配送&q…

作者头像 李华