magento -- mysql采用innodb存储引擎
来源:互联网 发布:js如何让按钮消失 编辑:程序博客网 时间:2024/05/27 10:43
mysql的存储引擎有几种,但是从5.0开时大部分是默认采用 innodb存储引擎。innodb存储引擎支持 事务,外键,行数据锁定(当然是相对myisam的表锁定)。magento安装的时候有检查 mysql是否支持innodb存储引擎,如果不支持则不能继续安装而提示如下错误,尽管innodb存储并没有被列为安装magento的前提条件之一。
Database server does not support InnoDB storage engine
Database connection error
magento论坛中有文章介绍可以通过将magento安装程序中关于检测mysql存储的代码注释掉而绕过这个问题。但是:
1,我的mysql到底支不支持innodb,如何查看
phpmyadmin 在初始界面,即点击localhost显示的页面,单击engines(中文是存储引擎)既可查看当前的mysql配置是否支持。
如果你喜欢在控制台下工作,而没有安装phpmyadmin,也可以通过mysql客户端来查看,登陆后执行
show engines;
2,如果当前不支持,如何修改配置让mysql启用innodb
网站说的比较多的是在配置文件中,如my.cnf中注释掉,如
# Comment the following if you are using InnoDB tables
skip-innodb
#innodb_data_home_dir = "/xampplite/mysql/"
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = "/xampplite/mysql/"
#innodb_log_arch_dir = "/xampplite/mysql/"
## You can set .._buffer_pool_size up to 50 - 80 %
## of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
## Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
但是,这个好像不是很管用。我简单查阅了mysql 5.0的手册,没有认真看,里面倒是有这么一句:
The InnoDB
storage engine is enabled by default. If you don't want to useInnoDB
tables, you can add the skip-innodb
option to your MySQL option file.
似乎只是说明了如何关闭。显然,明显的意思是默认是打开的。可是就奇怪了,我的配置文件中没有skip那个配置选项却也
是关闭的。在my.cnf中加上
default_storage_engine = InnoDB
导致重新启动mysql失败
3,我怀疑我的二制安装包会不会没带innodb支持,那什么查看二进安装包或已安装的mysql的安装时编译选项,有没有像
smbd -b那样的查看参数呢(目前末查到)
InnoDB
is included in binary distributions by default。
手册中的这句话只能对官方的二进制安装包适用,尽管我相信大部分的二进制安装包都有包含对innodb的支持。
最后呢,我将我的my.cnf配置文件中的关于innodb的配置选项分组到一个innodb section中重启后竟然可以。
注:尽管注释掉magento安装程序中的相应代码可以安装成功,但是那是以牺牲性能为前提而且会带来一系列的问题。因为这样安装下来的magento的数据全部采用MyIsam做存储引擎,不仅速度会慢,而且会造成孤儿记录(Orphaned Record,垃圾数据)。
(2011-11-20注:非常重要)
相信有很多的magento开发人员看这篇文章,有初学的有高手,很遗憾,我这篇文章其实有个很严重的错误,我也是才发现。我在另一篇博文中有提到并在此更正,如有被误导者,我深表致歉。请大家看下面的的这篇博文)
mysql - 为magento性能测试修改innodb的innodb_buffer_pool_size而引发的问题
如果你还是不能解决问题,你可以联系我,我非常愿意一起研究讨论,除非非常忙。
http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html
http://www.magentocommerce.com/boards/viewthread/33904/P0/
http://www.simplemachines.org/community/index.php?topic=321005.0
http://www.aschroder.com/2009/03/magento-installation-database-server-does-not-support-innodb-storage-engine/
http://www.ecommerceshare.com/articles/how-to-enable-innodb-for-magento-121/
- magento -- mysql采用innodb存储引擎
- MySQL InnoDB存储引擎
- MySQL存储引擎--InnoDB
- MySQL InnoDB存储引擎
- magento修复数据表存储引擎为InnoDB
- InnoDB存储引擎 --mysql的存储引擎
- mysql存储引擎之------InnoDB
- MySQL 存储引擎InnoDB/MYISAM
- MySQL InnoDB 存储引擎 基本参数
- mysql存储引擎之------InnoDB
- MySQL的存储引擎INNODB
- MySQL 之 InnoDB存储引擎
- [MySQL] 浅谈InnoDB存储引擎
- mysql存储引擎之innodb
- MySQL基础知识--------- InnoDB存储引擎
- mysql安装InnoDB存储引擎
- MySQL InnoDB存储引擎详解
- mysql存储引擎InnoDB-MyISAM
- display tag入门
- 在vs中可以运行而直接运行exe确出现错误
- 一类动态规划的四边形优化
- 熬夜
- DISPALYTAG的用法
- magento -- mysql采用innodb存储引擎
- 详细解说 STL 排序(Sort)
- 网站导航设计趋势案例集合
- log4j.properties的使用
- KMP算法
- iframe高度自适应
- 大型网站架构方案(包括系统架构和开发架构方案)
- 关于使用会话追踪(session tracking)
- JCookie-基于JQuery的Cookie增强插件