博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql更换MyISAM存储引擎为Innodb的操作记录
阅读量:6853 次
发布时间:2019-06-26

本文共 5076 字,大约阅读时间需要 16 分钟。

 

一般情况下,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)

转载地址:http://puyyl.baihongyu.com/

你可能感兴趣的文章
炉石传说 C# 开发笔记 (源代码整理公开)
查看>>
前端文摘:Web 开发模式演变历史和趋势
查看>>
最大子数组和问题的解
查看>>
cout设置输出数据不显示科学计数法
查看>>
zoj 1659 Mobile Phone Coverage(矩形面积并)
查看>>
python学习 day3
查看>>
Centos 6.4下用Squid配置反向代理多个内网WEB服务器
查看>>
王者荣耀之父姚晓光“奇葩”的工作理念
查看>>
Flask 信号
查看>>
Extjs checkbox数值回显
查看>>
SpringBatch配置数据库
查看>>
SVN使用svn+ssh协议连接服务器时重复提示输入密码 解决办法
查看>>
微信公众平台开发(107) 分享到朋友圈和发送给好友
查看>>
GeoTiff如何存储颜色表的研究
查看>>
HTTP请求GET/POST查看工具
查看>>
php实现 坐标移动
查看>>
前端之HTML
查看>>
The Cats' Feeding Spots
查看>>
Python 进阶_OOP 面向对象编程_self 的实例绑定
查看>>
jquery内核学习(5)--对象的遍历
查看>>