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;

  • 相关阅读:
    排序算法总结
    设计模式---(简单工厂模式,工厂模式,抽象工程模式),单例模式,代理模式,装饰器
    网易编程题——牛牛的闹钟
    Python + sqlalchemy + Pandas + Mysql 实现自动创建表,插入数据
    cucumber
    加油
    重新学习python爬虫
    python 网址
    《高兴》 贾平凹 摘抄
    funny python
  • 原文地址:https://www.cnblogs.com/zhoucx66/p/9018330.html
Copyright © 2011-2022 走看看