首页
学习
活动
专区
圈层
工具
发布

MySQL AutoCommit带来的问题

后来调整了一下思路,发现MySQL还有一个特性就是AutoCommit,即默认情况下,MySQL是开启事务的,下面表格能说明问题,表1: 但是,如果AutoCommit不是默认开启呢?...这是因为在连接池条件下,如果这个连接之前被借出过,并且曾经被设置成了AutoCommit为FALSE,那么这个连接在其生存时间内,永远会默认开启事务,这是MySQL自身决定的,因为连接池只是持有连接,代码中的...如下图: 无论如何commit,都无法改变这个连接的autocommit属性。...分析jdbc驱动代码可知,jdbc默认的AutoCommit状态是TRUE: 这实际上和MySQL的默认值是一样的。...因此,在这个连接被交还回连接池时,AutoCommit属性总是TRUE。 结论 任何查询接口都应该在获取连接以后进行AutoCommit的设置,将其设置为true。

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PDO扩展PDO::ATTR_AUTOCOMMIT 出坑记

    日志,查看状态 进入mysql命令行,查看mysql的general-log状态 show global variables like "%genera%"; 如果没有开启,执行如下命令 ;general_log_file_path...直接写了个简单的mysql pdo 连接数据库,并且插入数据到innodb表里面,结果没有任何问题,成功了,然后我就想到pdo里面有个参数PDO::ATTR_AUTOCOMMIT,是不是他在作怪?...使用getAttribute(PDO::ATTR_AUTOCOMMIT)) 获取他的值,打印,发现是1,证明是自动提交事务的 然后在我封装的框架里面,我打印了他的值,发现是0,问题找到 那么,在插入的时候...连接数据库的时候,options里面设置 PDO::ATTR_AUTOCOMMIT 为 1 插入操作的时候,自己执行commit,显式的完成一次事务,我采用了这个方法 遗留问题是,同样的PHP版本,为啥单独的连接...PDO::ATTR_AUTOCOMMIT为1 ,在启动的swoole-httpserer里面是0,我没有继续深入。

    1.1K20

    Mysql配置详解

    配置文件 vi /data/$DOCKER_NAME/conf/my.cnf # 下载容器镜像 # docker search mysql docker pull mysql:5.7 # 运行容器...安装 二、配置文件 # 客户端登录配置 [client] port = 3306 # 端口号 socket = /var/lib/mysql/mysql.sock # 套接字文件 # 客户端命令行配置...[mysql] no-auto-rehash # 默认不自动补全 auto-rehash自动补全 # 服务优化配置 [mysqld] skip-grant-tables # 跳过登录验证 user...) skip-name-resolve = 1 #跳过主机名解析,直接IP访问,可提升访问速度 log-error = /data/log/mysqld_error.log #错误日志文件 # 重要配置...小于1G expire_logs_days = 7 # 清除过期日志 # 主从复制相关 server-id = 2020 #主从复制必须,并且各服务器具有唯一性 log_slave_updates #配置从服务器的更新是否写入二进制日志

    1.7K20

    MySQL环境配置

    所以,卸载不要的环境最终可以总结以下这三点: 不存在mysql对应的rpm包 没有对应的mysql进程 没有my.cnf配置文件 做完前两步后my.cnf若仍存在,可以选择使用rm指令删除配置文件或者备份起来...方法步骤: 打开mysql配置文件:my.cnf。 vim /etc/my.cnf 在尾部添加:skip-grant-tables 并保存。...五.设置配置文件my.cnf 配置⼀下my.cnf,主要是数据库客⼾端和服务器的编码格式->统一使用UTF-8的编码格式。...mysql作为网络服务,那么就可以更改其指定的端口号,通过配置my.cnf进而更改端口号。...解决方案:若想查到网络进程,则只需把免密登陆的配置注释掉即可。 8.0在后续的练习,不会出现问题。只有可能在mysql链接C语言时会出现问题,所以到时候在换成5.6版本的mysql。

    51010

    MySQL TCL 事务控制

    系统变量 @@autocommit 用来控制一条SQL语句提交后是否自动执行,默认值是1,表示在mysql命令行模式下每条增删改语句在键入回车后,都会立即生效,而不需要手动commit。...如果想查看全局配置,可查看系统变量 @@global.autocommit。...在 MySQL 中,要永久地关闭自动提交事务,必须在配置文件中进行设置,以便在每次启动 MySQL 服务器时都保持这个设置。 找到 MySQL 的配置文件。...在大多数情况下,MySQL 的配置文件名为 my.cnf 或 my.ini,具体位置取决于您的操作系统和安装方式。 打开配置文件并找到 [mysqld] 部分,添加或修改下面的配置项。...,需要将上面配置文件中的配置项init_connect='SET autocommit=0'删除或设置为 1 即可。

    48010

    Linux配置Mysql5.7主从配置

    封面为好友拍摄的照片,想查看更多微信公众号搜索:JavaBoy王皓或csdn博客搜索:TenaciousD 前言 主从配置其实蛮简单的,主从配置也叫热备,热备就是在数据库启动的情况下实时对数据进行备份,...我们使用数据库对主从配置主要是解决数据库对读写压力,一般的,写操作主库,读操作从库。...正文 废话不多说了,大家过来是看如何配置主从的,不是来学概念和原理的。...主 10.8.18.73 从 10.8.18.74 主库操作 一、配置文件 使用命令对主库进行配置 vim /etc/my.cnf 添加如下配置 server-id=1 #服务器id (主从必须不一样...),爱写啥写啥,别太离谱就行 log-bin=mysql-bin #打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径 #作为主机的配置 binlog-do-db=master

    1.5K20
    领券