这里有新鲜出炉的 Mysql 教程,程序狗速度看过来!
MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySQL AB 公司。MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
下面小编就为大家带来一篇 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 的操作记录总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0811/339359.html