如何在已安装的MySql实例上启用inno-db支持?
我安装了mysql-5.0.67-win32。 执行'show engines'时'InnoDB'''禁用'。 根据文档,MySql是在inno-db的支持下编译的 (来自doc:发生了DISABLED值,因为服务器是使用禁用引擎的选项启动的,或者因为没有给出启用它所需的所有选项。)
在my.ini中,我评论了'skip-innodb'。这没有用。 所有其他与inno-db相关的变量保持不变。
在我遇到描述的情况之前,我已经做了一些不寻常的动作。 我安装了mysql-4.0.17-win。我卸载它,然后安装mysql-5.0.67-win32。 在安装向导中我只选择了MyISAM支持(据我所知,我以这种方式禁用了inno-db支持。当我尝试在inno-db的支持下重新安装时,我遇到了使用我以前的数据库'mysql'和帐户信息的问题)
MySQL文档说我应该使用mysqldump导出数据,然后在升级过程中导入导出的数据。我试图这样做,但在导入数据时,我获得了有关语法错误的消息(我认为它与mysql的第4版和第5版的某些不兼容性有关)
答案 0 :(得分:4)
默认情况下应启用。在某些情况下,MySQL lib文件夹上的错误权限会导致InnoDB吠叫。检查MySQL错误日志中的权限错误。
答案 1 :(得分:3)
我在my.ini中有以下innodb选项。这是一个非常小的配置,所以如果你希望mysql具有良好的性能,请不要使用这个值。请在更改my.ini后重新启动mysql。
#*** INNODB Specific options ***
innodb_data_home_dir="C:/mysqldata/"
#skip-innodb
innodb_additional_mem_pool_size=120M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16M
innodb_buffer_pool_size=10M
innodb_log_file_size=2M
innodb_thread_concurrency=8
答案 2 :(得分:1)
也许你在全局配置文件中禁用了inno-db。在Linux上,这就像/etc/mysql/my.cnf - 也许Windows有一个类似的全局配置文件。
答案 3 :(得分:1)
确保您正在更改正确的my.ini文件。在Windows上,可以从许多位置读取。订单是:
在命令提示符下键入mysql --help
以查看计算机上的实际顺序,例如:
从中读取默认选项 以给定顺序跟随文件: C:\ my.ini C:\ my.cnf C:\ WINDOWS \ my.ini C:\ WINDOWS \ my.cnf C:\ Program Files \ MySQL \ M ySQL Server 5.0 \ my.ini C:\ Program Files \ MySQL \ MySQL Server 5.0 \ my.cnf中
答案 4 :(得分:0)
你检查了启动参数吗?也许用于启动服务器的shell脚本或批处理文件在命令行上禁用引擎.IIRC命令行标志胜过.ini设置。
答案 5 :(得分:0)
我已经解决了这个问题。
简而言之: 由于导入数据时出现一些奇怪的语法错误,我无法在MySql4上转储数据库并在MySql5上恢复数据库。
我在安装后尝试用旧的覆盖MySql5数据库,包括数据库'mysql'。它工作正常,但我无法启用inno-db支持。 (这样我甚至可以使用函数PASSWORD来获取旧密码(而不是OLD_PASSWORD))
由于'mysql'的数据库结构在5版本中被更改,我尝试再次安装MySql5并复制我的旧数据库,除了'mysql'之外。在此之后,我更新了'mysql'数据库,其中包含来自'mysql'的已导出数据的更正版本。通过这种方式我获得了mysql 5的工作。
毕竟我还执行了mysqlcheck --all-databases --auto-repair
升级我的桌子。
P.S。感谢所有答案的作者提示我解决问题的正确方法。