zoukankan      html  css  js  c++  java
  • MYSQL事务处理失效原因

    mysql有多种存储引擎,有些版本(mysql5.5.5以前默认是MyISAM,mysql5.5.5以后默认是InnoDB)安装时默认的存储引擎是MyISAM,而MyISAM存储引擎是不支持事务处理的,所以才导致了项目中service层的某个方法事务失效,解决的方法就是将需要事务管理的表的存储引擎改为InnoDB,下面将详细说明mysql的几种存储引擎以及如何修改存储引擎:

    一、查看mysql数据库所支持的存储引擎

    show ENGINES;

    也可以使用下面语句来查看mysql默认的存储引擎:

    SHOW VARIABLES LIKE 'storage_engine';

    二、修改存储引擎

    1、修改mysql默认存储引擎为InnoDB,关闭mysql服务:mysql找到mysql安装目录下的my.ini文件:找到default-storage-engine=MYISAM 改为default-storage-engine=INNODB找到skip-innodb 改为#skip-innodb,即注释掉该行,skip-innodb为忽略InnoDB的意思,此处需要开启InnoDB,故需要把它注释启动mysql服务:net start mysql;    

    2、linux:备份my.cnf
    cd /etc
    cp my.cnf my.cnf_bak

    修改my.cnf
    [mysqld] 后加入
    vi my.cnf
    default-storage-engine=InnoDB

    删除/mysql/data目录下的ib_logfile0,ib_logfile1

    否则在启动mysql时会遇到下述错误:
    [ERROR] Plugin 'InnoDB' init function returned error.
    [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    [ERROR] Unknown/unsupported table type: InnoDB
    [ERROR] Aborting

    启动mysql
    cd /home/administrator/mysql
    bin/mysqld_safe -user=root &

    登录mysql检查修改是否成功
    mysql -h ip -u root -p

    mysql>show engines;

  • 相关阅读:
    [转载] $CF652B$ 题解
    [转载] $Luogu$ $P4951$ 题解
    luoguP3723 HNOI2017 礼物
    动态dp学习笔记
    noip级别模板小复习
    noip2017简要题解。
    noip考前抱佛脚 数论小总结
    HDU 6071 Lazy Running
    POI2012 ODL-Distance
    [NOI2002]荒岛野人
  • 原文地址:https://www.cnblogs.com/zhoucx66/p/9018330.html
Copyright © 2011-2022 走看看