MySQL支持事务的关键在于使用InnoDB存储引擎。通过SHOW ENGINES命令确认InnoDB的Support列为“YES”,确保配置文件中启用default-storage-engine=InnoDB并重启服务。创建表时显式指定ENGINE=InnoDB,然后通过SET autocommit=0、START TRANSACTION、ROLLBACK或COMMIT测试事务功能,数据能回滚或提交即表示事务正常工作。

MySQL默认支持事务,但能否使用事务功能取决于存储引擎的选择和配置。InnoDB是MySQL中支持事务的默认存储引擎,而MyISAM不支持事务。要确保MySQL支持事务,关键在于正确安装并启用InnoDB引擎。
确认MySQL是否已启用InnoDB引擎
登录MySQL命令行后执行以下命令:
SHOW ENGINES;查看输出结果中的InnoDB状态。如果Support列为“YES”,说明InnoDB已启用,支持事务。如果为“NO”或“DISABLED”,需要修改配置文件启用它。
启用InnoDB存储引擎
大多数现代MySQL版本默认启用InnoDB。如果你发现未启用,请按以下步骤操作:
- 打开MySQL配置文件 my.cnf(Linux系统通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf,Windows系统为 my.ini)
- 检查是否存在 skip-innodb 这类禁用InnoDB的配置项,如果有,请注释或删除
- 确保包含以下配置:
default-storage-engine = InnoDB
保存文件后重启MySQL服务:
sudo systemctl restart mysql创建支持事务的数据表
确保创建表时使用InnoDB引擎。例如:
发卡宝是一个专业的软件卡密等虚拟商品在线交易平台,拥有多种兑换方式,费率低,结算快,正规企业平台一直稳定运营,24小时不间断提供自动发卡服务。【模板说明】试用版自带一套模板(响应式)【环境支持】PHP环境 / 200M或以上空间大小 / 开启父路径 / 设置index.php为默认首页 / 目录写入权限需要开启【数据库】MySQL【安装步骤】将文件上传至空间目录,运行“http://域名/inst
id INT PRIMARY KEY,
balance DECIMAL(10,2)
) ENGINE=InnoDB;
如果不指定ENGINE,默认会使用配置中的default-storage-engine,建议显式声明以避免意外。
测试事务功能
使用以下SQL语句验证事务是否生效:
SET autocommit = 0;START TRANSACTION;
UPDATE account SET balance = balance - 100 WHERE id = 1;
UPDATE account SET balance = balance + 100 WHERE id = 2;
ROLLBACK; -- 或 COMMIT; 查看数据是否回滚或提交
执行 ROLLBACK 后,数据应恢复到原始状态,说明事务机制正常工作。
基本上就这些。只要使用InnoDB引擎并正确配置,MySQL天然支持事务,无需额外安装模块。注意不要误用MyISAM引擎,它是不支持事务的。









