未知的表引擎'InnoDB'
最近,我发现,如果我有很好的硬件,我可以最大化mysql性能。由于我一直使用的是InnoDB我添加额外的配置成的my.ini未知的表引擎'InnoDB'
这里是新增加的配置:
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 120
然后我重新启动所有的服务。但是当我使用我的程序时,发生错误“未知表引擎'InnoDB'”。
我试图解决这个问题:
- 我删除日志文件重新启动该服务,但我仍然得到了错误。
我刚刚重试删除日志文件并重新启动服务,它的工作原理! 但是要小心2G分配,因为innodb可能不会编译,如果2G不起作用请使用1G。
其他解决方案没有解决我的问题。 InnoDB引擎在调整配置后被禁用。
去除borked ib_ *登录MySQL数据目录文件固定我的问题,并允许我使用2G缓冲池InnoDB的: http://www.turnkeylinux.org/forum/support/20090111/drupal-6-problem-enable-innodb#comment-131
这是我的问题;关闭mysql,删除ib_logfile [01]文件,重启mysql,一切正常。 – pdwalker
我也遇到了这个问题为好。问题是我给InnoDB分配的内存比变量innodb_buffer_pool_size
的服务器多。 MySQL并没有抱怨没有能够在其日志中分配这些内存。
从备份恢复时出现此问题。问题是我在my.ini中有一些不同的设置。所以如果有人遇到这个问题,请确保设置相同的设置(复制my.ini),停止MySQL服务,然后恢复整个数据文件夹,然后再次启动MySQL服务。
1.检查,看是否已启用InnoDB
支持:
mysql> show variables like 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb | YES |
+---------------+-------+
1 row in set (0.00 sec)
2.如果上面的值被禁用,那么你就需要启用InnoDB的。
3.打开MySQL的配置文件。
的Windows:在各种平台上,配置文件可以在文件名和位置不同,$ MYSQL_INSTALL_DIRECTORY/my.ini的
的Linux/Unix:/etc/mysql/my.cnf
4.如果参数跳innodbis注释掉/存在,那么只需将其注释掉:
# skip-innodb
5。关闭MySQL服务器,删除/重命名MySQL的日志刷新整个服务器的日志,并重新启动MySQL服务器:
-
的Linux:
~$: /etc/init.d/mysql stop
~$: rm /var/lib/mysql/ib_logfile*
~$: /etc/init.d/mysql start
-
Windows:
转至$ MYSQL_INSTALL_DIRECTORY/data并删除/移动前缀为ib_logfile的日志文件。
如果你完全破坏你的my.cnf文件,你有另一个选择是用mysql安装的默认配置替换它。对于Linux:
您有以下选项,
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf
下面是一个例子来安装它:
#backup original config
mv /etc/my.cnf{,.bak}
#copy new my.cnf from template
cp /usr/share/mysql/my-large.cnf /etc/my.cnf
这些选项的详细信息,请http://dev.mysql.com/doc/mysql/en/option-files.html
我试着所有这些(和许多其他),但对我而言,一种可行的方法是:
- 停止MySQL服务器
/etc/init.d/mysql stop
- 删除日志文件
rm ib_logfile0 ib_logfile1
- 重命名InnoDB的文件(如果没有别的办法,因为这将重新创建)
mv ibdata1 old_ibdata1
-
我有这个CONFIGS在
/etc/mysql/my.cnf
- >即使您没有指定,MySql将使用默认值。[mysqld] datadir=/data/mysql/data socket=/var/run/mysqld/mysqld.sock #Not a must to define the following innodb_log_file_size=1G innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_buffer_pool_size=1G innodb_data_file_path=ibdata1:10M:autoextend innodb_lock_wait_timeout=18000
启动MySQL服务器
/etc/init.d/mysql start
这是位于/ var/lib中/ MySQL的/我(的chroot-ED),它也可以发现@在/ usr /本地/ MySQL的/ data/ –
另一个可能的日志位置是/ mysqldb/logs/ – MarkHu
只是删除日志文件并重新启动mysql为我工作..谢谢 – Sree