我正试图在我的linux服务器上启用InnDB。 我已经在ESX服务器上安装了Ubuntu 10.04 JeOS。 然后我使用aptitude安装了mySQL和tomcat。 但是当我使用SHOW ENGINES时, 在MySQL中,似乎没有安装InnoDB。 然后我试着按照文档中的指示。 http://dev.mysql.com/doc/refman/5.1/en/innodb.html但是,当我尝试启用一个插件时,我得到以下内容:
错误1123(HY000):无法初始化函数'InnoDB'; 插件初始化function失败。
对于如何解决这个问题,我将不胜感激。
我遇到过同样的问题。 10.04,apparmor不允许MySQL读取InnoDB插件。 /etc/apparmor.d/usr.sbin.mysqld添加到/etc/apparmor.d/usr.sbin.mysqld :
/ usr / lib / mysql / plugin / r,/ usr / lib / mysql / plugin / * mr,
然后重新加载apparmor并重新启动MySQL服务。
这听起来像是MySQL软件包的Jeos版本决定不出于任何原因将innodb编译成二进制文件。 不知道为什么,我的10.04桌面确实启用了它。 无论如何,默认的my.cnf不会启用插件。
假设innodb插件文件(ha_innodb_plugin.so等)位于/ usr / lib / mysql / plugins中,您可以按照以下说明启用它。
http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-plugin-installation-dynamic-posix.html
如果innodb插件不在这个目录下,你应该尝试安装普通的ubuntu的mysql .deb或者直接从dev.mysql.com获取一个包。
如果指定,请在my.cnf中注释skip-innodb并重新启动MySQL。
这些是my-large.cnf示例configuration提供的可以指定启用InnoDB的设置:
# Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /usr/local/mysql/data/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /usr/local/mysql/data/ #innodb_log_arch_dir = /usr/local/mysql/data/ # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 256M #innodb_additional_mem_pool_size = 20M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 64M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50
如果您启用innodb_data_file_path或编辑值Innodb不启用。 所以你必须停止mysql,并删除数据文件。 然后它将从您select的新文件大小设置开始:
sudo rm /var/lib/mysql/ib* (WARNING this deletes the database) sudo /etc/init.d/mysql start service mysql status to check if running Query ENGINES for Innodb to be YES.
不幸的是,我不知道如何使Innodb成为Ubuntu 10.04上Mysql 5.1.61的默认设置。