MyISAM与InnoDB之间的切换
查看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
这些配置参数根据本机实际情况配置。