MyISAM与InnoDB之间的切换

2017-06-22  本文已影响0人  哥本哈登_sketch

查看MySQL提供什么存储引擎:

mysql> show engines;

查看MySQL当前默认的存储引擎:

mysql> show variables like '%storage_engine%';

查询wpsql库

mysql> use wpsql;

列出当前库所有表名

mysql> show tables;

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

mysql> show create table wp_posts;

将wp_posts表修为InnoDB存储引擎(也可以此命令将InnoDB换为MyISAM):

mysql> ALTER TABLE wp_posts ENGINE=INNODB;
如果要更改整个数据库表的存储引擎,一般要一个表一个表的修改,比较繁琐,可以采用先把数据库导出,得到SQL,把MyISAM全部替换为INNODB,再导入数据库的方式。

转换完毕后重启mysql

service mysqld restart

如果要把数据库从MyISAM修改成InnoDB需要做以下工作:

因为MySQL没有安装或没有使用InnoDB引擎,可以通过SQL命令查看引擎:

SHOW ENGINES;

结果如果是InnoDB| NO 说明未开启。

如果没有安装,则需要打补丁,或重新安装该模块,如果安装,可参考以下解决办法。

检查my.cnf配置(windows为my.ini):

如果出现“#skip-innodb”则将“#”去掉,重启MySQL;

如果第一条无法解决,加上配置:default-storage-engine=InnoDB 再重启MySQL。

如果第二条仍无法解决,则检查InnoDB引擎的配置是否有:

innodb_data_file_path = ibdata1:200M:autoextend

innodb_buffer_pool_size = 2G

innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 256M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 120

这些配置参数根据本机实际情况配置。

上一篇下一篇

猜你喜欢

热点阅读