如何在MySql 4上安装的MySql 5上启用inno-db支持?

时间:2008-09-21 20:29:09

标签: mysql innodb

如何在已安装的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版的某些不兼容性有关)

6 个答案:

答案 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上,可以从许多位置读取。订单是:

  1. WINDIR \ my.ini,WINDIR \ my.cnf
  2. C:\ my.ini,C:\ my.cnf
  3. INSTALLDIR \ my.ini,INSTALLDIR \ my.cnf
  4. 默认-额外文件
  5. 在命令提示符下键入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。感谢所有答案的作者提示我解决问题的正确方法。