• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Mysql更换MyISAM存储引擎为Innodb的操作记录总结

    一般情况下,mysql会默认提供多种存储引擎,可以通过下面的查看:

    1)查看mysql是否安装了innodb插件。

    通过下面的命令结果可知,已经安装了innodb插件。

    mysql> show plugins; 
    +------------+--------+----------------+---------+---------+ 
    | Name  | Status | Type   | Library | License | 
    +------------+--------+----------------+---------+---------+ 
    | binlog  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
    | partition | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
    | CSV  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
    | MEMORY  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
    | InnoDB  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
    | MyISAM  | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
    | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL  | 
    +------------+--------+----------------+---------+---------+ 
    7 rows in set (0.00 sec)

    ----------------------------------------------------------------------
    如果发现没有安装innodb插件,可以执行下面语句进行安装:
    mysql> install plugin innodb soname 'ha_innodb.so';
    ----------------------------------------------------------------------

    2)查看mysql现在已提供什么存储引擎:

    mysql> show engines; 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    | Engine  | Support | Comment             | Transactions | XA | Savepoints | 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    | MRG_MYISAM | YES  | Collection of identical MyISAM tables      | NO   | NO | NO   | 
    | CSV  | YES  | CSV storage engine           | NO   | NO | NO   | 
    | MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance  | NO   | NO | NO   | 
    | InnoDB  | YES  | Supports transactions, row-level locking, and foreign keys | YES   | YES | YES  | 
    | MEMORY  | YES  | Hash based, stored in memory, useful for temporary tables | NO   | NO | NO   | 
    +------------+---------+------------------------------------------------------------+--------------+------+------------+ 
    5 rows in set (0.00 sec)

    3)查看mysql当前默认的存储引擎:

    mysql> show variables like '%storage_engine%'; 
    +----------------+--------+ 
    | Variable_name | Value | 
    +----------------+--------+ 
    | storage_engine | MyISAM | 
    +----------------+--------+ 
    1 row in set (0.00 sec) 
    

    4)看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):

    mysql> show create table 表名;

    mysql> show create table wx_share_log; 
    +--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
    | Table  | Create Table                                                                          | 
    +--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
    | wx_share_log | CREATE TABLE `wx_share_log` ( 
     `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '微信分享日志自增ID', 
     `reference_id` int(11) NOT NULL COMMENT '推荐的经纪人id', 
     `create_time` datetime NOT NULL COMMENT '创建时间', 
     PRIMARY KEY (`id`) 
    ) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8     | 
    +--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
    1 row in set (0.00 sec) 
    

    5)如何将MyISAM库导成INNODB引擎格式的:

    在备份出的xxx.sql文件中把ENGINE=MyISAM全换成ENGINE=INNODB
    再次导入就可以了。

    6)转换表的命令:

    mysql> alter table 表名 engine=innodb;

    有上面可以查到看,本机mysql使用的存储引擎是默认的MyISAN,由于业务需要,先要将其存储引擎改为Innodb。

    操作记录如下:

    1)以安全模式关闭mysql

    [root@dev mysql5.1.57]# mysqladmin -uroot -p shutdown
    Enter password:
    [root@dev mysql5.1.57]# ps -ef|grep mysql

    2)备份my.cnf

    [root@dev mysql5.1.57]# cp my.cnf my.cnf.old

    3)修改my.cnf配置文件

    [root@dev mysql5.1.57]# vim my.cnf
    .....
    [mysqld]                                        //在这个配置区域添加下面一行,指定存储引擎为innodb
    default-storage-engine = InnoDB

    4)删除/mysql/data目录下的ib_logfile0,ib_logfile1。删除或剪切到别处都行。

    [root@dev var]# mv ib_logfile0 ib_logfile1 /tmp/back/

    5)启动mysql,登陆mysql验证存储引擎是否已切换

    [root@dev var]# /Data/app/mysql5.1.57/bin/mysqld_safe --defaults-file=/Data/app/mysql5.1.57/my.cnf

    mysql> show variables like '%storage_engine%'; 
    +----------------+--------+ 
    | Variable_name | Value | 
    +----------------+--------+ 
    | storage_engine | InnoDB | 
    +----------------+--------+ 
    1 row in set (0.00 sec) 
    

    以上这篇Mysql更换MyISAM存储引擎为Innodb的操作记录总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • MySQL MyISAM 与InnoDB 的区别
    • 简单了解mysql InnoDB MyISAM相关区别
    • MySQL创建数据表时设定引擎MyISAM/InnoDB操作
    • MySQL存储引擎MyISAM与InnoDB区别总结整理
    • MySQL存储引擎中的MyISAM和InnoDB区别详解
    • mysql更改引擎(InnoDB,MyISAM)的方法
    • MySQL数据库修复方法(MyISAM/InnoDB)
    • Mysql InnoDB和MyISAM区别原理解析
    上一篇:mysql 行转列和列转行实例详解
    下一篇:MACOS中忘记MySQL root密码的解决方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Mysql更换MyISAM存储引擎为Innodb的操作记录总结 Mysql,更换,MyISAM,存储,引擎,