如何在mariadb中关闭autocommit?

时间:2016-05-11 20:11:12

标签: javascript node.js mysql-workbench mariadb mariasql

我正在为mariasql使用mariasql和mysql workbench IDE,但我无法禁用自动提交模式。如何关闭自动提交?

5 个答案:

答案 0 :(得分:1)

在SQL编辑器中有一个工具栏按钮,允许切换自动提交模式:

enter image description here

关闭自动提交将启用另外两个可用于启动和提交事务的蓝色按钮。

答案 1 :(得分:1)

我认为关闭autocommit是错误的。

处理自动提交有三种方法:

  • autocommit=1 - 立即提交所有陈述。这通常适合随意使用。

  • BEGIN ... COMMIT - 您明确包含一组SQL语句的位置。通过BEGIN,系统会提醒您需要COMMIT

  • autocommit=0 ... COMMIT - 我认为这很容易出错。您默认自动提交为0,但是忘记发出COMMIT。然后你想知道为什么你的INSERTs消失了。

答案 2 :(得分:0)

您可以为会话设置autocommit为false:

SET autocommit = 0;

https://mariadb.com/kb/en/mariadb/server-system-variables/#autocommit

答案 3 :(得分:0)

我将XAMPP-VM与MariaDB与InnoDB一起使用。无法设法使用my.conf禁用autocommit,但是,我编辑了mysql.server文件(对于XAMPP-VM,它位于/ opt / lampp / bin文件夹中)并将此参数添加到启动

--autocommit=0

所以最后看起来像这样

...
case "$mode" in
  'start')
    # Start daemon
    ...
      $bindir/mysqld_safe --autocommit=0 --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
    ...

它完成了伎俩。您可以在停止 - 启动后使用此功能进行检查(重新启动将不会应用更改,因为它会在交换机中的不同路径上进行)

select *
from information_schema.global_variables
where variable_name = 'AUTOCOMMIT';

硬币的另一面是如果你升级那么你需要重复这个。

希望,你可以采用这个解决方案/让你知道如何做到这一点!

答案 4 :(得分:0)

我发现的唯一方法是将--autocommit=0添加到守护程序的启动命令中。

环境:

$ mariadb --version
mariadb  Ver 15.1 Distrib 10.5.6-MariaDB, for Linux (x86_64) using readline 5.1

$ grep PRETTY_NAME /etc/os-release 
PRETTY_NAME="Oracle Linux Server 7.9"

单行命令:

注意:您仍然需要手动添加--autocommit=0

$ vim /usr/lib/systemd/system/mariadb.service && systemctl daemon-reload && systemctl restart mariadb && mariadb -u root -e "show variables like '%autocommit%'"

分步命令:

  1. 使用文本编辑器打开作业文件
$ vim /usr/lib/systemd/system/mariadb.service
  1. --autocommit=0添加到ExecStart(对我来说是#92)
ExecStart=/usr/sbin/mariadbd --autocommit=0 $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
  1. 重新加载守护程序
$ systemctl daemon-reload
  1. 重新启动服务
$ systemctl restart mariadb
  1. 检查autocommit变量的状态
$ mariadb -u root -e "show variables like '%autocommit%'"
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| autocommit             | OFF   |
...
+------------------------+-------+