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
[[email protected] mysql5.1.57]# mysqladmin -uroot -p shutdown
Enter password:
[[email protected] mysql5.1.57]# ps -ef|grep mysql

2)备份my.cnf
[[email protected] mysql5.1.57]# cp my.cnf my.cnf.old

3)修改my.cnf配置文件
[[email protected] mysql5.1.57]# vim my.cnf
.....
[mysqld]                                        //在这个配置区域添加下面一行,指定存储引擎为innodb
default-storage-engine = InnoDB

4)删除/mysql/data目录下的ib_logfile0,ib_logfile1。删除或剪切到别处都行。
[[email protected] var]# mv ib_logfile0 ib_logfile1 /tmp/back/

5)启动mysql,登陆mysql验证存储引擎是否已切换
[[email protected] 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)
时间: 2024-10-25 04:44:53

Mysql更换MyISAM存储引擎为Innodb的操作记录的相关文章

MySQL数据库MyISAM存储引擎转为Innodb

MySQL数据库MyISAM存储引擎转为Innodb 之前公司的数据库存储引擎全部为MyISAM,数据量和访问量都不是很大,所以一直都没什么问题.但是最近出现了MySQL数据表经常被锁的情况,直接导致了用户连接网站时超时而返回502,于是决定把存储引擎转为Innodb的,以解决MyISAM的表锁问题.下面将操作步骤记录一下. 1.导出centos数据库的表结构 mysqldump -d -uxxx -p centos > centos_table.sql 其中-d参数表示不导出数据,只导出表结构

MySQL之MyISAM存储引擎压缩表

一.介绍 MySQL的MyISAM存储引擎支持压缩表空间,压缩后的表空间会减少,但是压缩后的表是只读的,不能插入和更新数据,如果需要更新,则需要解压后更新,再压缩 . 二.案例 1.创建数据库,创建表并指定存储引擎为MyISAM,字符集为utf8 create database myisamdb; use myisamdb; create table myisam (id int unsigned auto_increment primary key, name varchar(20) not

Mysql之MyISAM存储引擎

MyISAM是Mysql的默认存储引擎,它在磁盘上存储为三个文件, .MYD是数据文件  .MYI是索引文件  .frm是存储表定义.我们可以考虑把数据文件和索引文件分别存到不同的磁盘,实现IO平均分布. 如果对事务完整性没有要求,或者以select .insert 为主的操作,可以选择该存储引擎.     1.MyISAM只会对索引进行缓存,而数据文件则是使用操作系统缓存,当索引数据大于key buffer的时候,也会使用操作系统缓存. 2.使用count(*)的时候很快,因为行数是单独保存的

(MariaDB/MySQL)MyISAM存储引擎读、写操作的优先级

MariaDB/MySQL中使用表级锁的存储引擎(例如MyISAM.Aria(MariaDB对MyISAM引擎的改进,前身是MyISAM))在读(select).写操作(insert.delete.update.replace)上有优先级的概念.默认情况下,写操作的优先级高于读操作.注:不适用于InnoDB存储引擎. 以MyISAM为例.当有进程正在写MyISAM表的时候,又有新的读操作.写操作出现,则会先执行完所有的写操作,等写完后才会读表.实际上并非总是先执行完所有写操作,因为有系统变量ma

mysql学习02-mysql存储引擎(InnoDB,MyISAM)

1.查看现在使用的mysql提供了哪些供使用的存储引擎(可以看出默认使用的存储引擎) 2.查看当前默认使用的存储引擎 show variables: 表示查询数据库的配置变量的值. show status:表示查询数据库运行时的状态变量. 3.InnoDB和MyISAM比较 对比项 MyISAM InnoDB 主外键 不支持 支持 事务 不支持 支持 行表锁 表锁,操作一条数据也会锁住整张表,不适合高并发操作 行锁,进行操作时只会锁住对应的那一行数据,不对其他行产生影响,适合高并发操作 缓存 缓

MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

先去查一下"引擎"概念. 引擎(Engine)是电子平台上开发程序或系统的核心组件.利用引擎,开发者可迅速建立.铺设程序所需的功能,或利用其辅助程序的运转.一般而言,引擎是一个程序或一套系统的支持部分.常见的程序引擎有游戏引擎,搜索引擎,杀毒引擎等. Ok,我们知道了,引擎就是一个程序的核心组件. 简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分.不同的存储

第二课——解析mysqldump命令和mysqlbinlog命令+innodb和Myisam存储引擎简介

环境说明 mysql版本:Percona-Server-5.6.30 IP:10.7.15.167 端口:3306 安装目录:/httx/run/mysql 数据目录:/httx/run/mysql/data/ mysqldump的常用参数 mysqldump测试--–研究加–single_transaction参数的区别 开启general_log日志,跟踪mysql操作日志 (general_log日志可以方便跟踪所有mysql上的操作,但是生产环境不建议开启,占用资源.消耗内存) mysq

更换Mysql存储引擎为Innodb

更换Mysql存储引擎为Innodb 问题:由于环境中的Mysql数据库使用的是Mysql5.1.77版本 ,使用的是MYISAM引擎 ,会导致表级锁,并且不支持故障自动恢复(CSR) 表级锁:对表中任意一行数据修改操作时,整个表都会被锁定,对其他行的数据都不能操作 不支持故障自动恢复(CSR) :当断电时可能会出现数据损坏或丢失的问题 解决方案: 将数据库升级到5.6.44版本并更换引擎为Innodb 5.1.77里对Innodb的支持不够完善,更换版本为5.6.44 实现步骤(使用aaa演示

转!!MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)

MySQL中的存储引擎: 1.存储引擎的概念 2.查看MySQL所支持的存储引擎 3.MySQL中几种常用存储引擎的特点 4.存储引擎之间的相互转化 一.存储引擎: 1.存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法. 2.MySQL中的数据用各种不同的技术存储在文件(或内存)中,这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同功能和能力.在MySQL中将这些不同的技术及配套的相关功能称为存储引擎. 二.MyS