2

如何在已安装的 MySql 实例上启用 inno-db 支持?

我已经安装了 mysql-5.0.67-win32。执行“显示引擎”时,“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 版本的一些不兼容有关)

4

6 回答 6

4

默认情况下应启用。在某些情况下,MySQL lib 文件夹上的错误权限会导致 InnoDB 吠叫。检查您的 MySQL 错误日志以获取权限错误。

于 2008-09-21T20:35:53.743 回答
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
于 2008-09-21T20:36:55.363 回答
1

也许您在全局配置文件中禁用了 inno-db。在 Linux 上,这类似于 /etc/mysql/my.cnf - 也许 Windows 有一个类似的全局 conf 文件。

于 2008-09-21T20:34:17.507 回答
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. 默认值-额外文件

键入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

于 2008-09-21T22:17:37.883 回答
0

你检查过启动参数吗?也许您用来启动服务器的 shell 脚本或批处理文件会在命令行上禁用引擎。IIRC 命令行标志胜过 .ini 设置。

于 2008-09-21T22:22:33.330 回答
0

我已经解决了这个问题。

简而言之:由于导入数据时出现一些奇怪的语法错误,我无法在 MySql4 上转储数据库并在 MySql5 上恢复它。

安装后我尝试用旧数据库覆盖 MySql5 数据库,包括数据库“mysql”。它工作正常,但我无法启用 inno-db 支持。(通过这种方式,我什至可以将函数 PASSWORD 用于旧密码(而不是 OLD_PASSWORD))

由于 'mysql' 的数据库结构在 5 版本中发生了更改,我尝试再次安装 MySql5 并复制了我的旧数据库,但 'mysql' 除外。在此之后,我使用“mysql”导出数据的更正版本更新了“mysql”数据库。以这种方式,我获得了 mysql 5 工作。

毕竟我也执行
mysqlcheck --all-databases --auto-repair
了升级我的表。

PS感谢所有答案的作者,这些答案提示我解决问题的正确方法。

于 2008-09-23T17:34:15.973 回答