未知的表引擎'InnoDB'

rec*_*hie 24 mysql innodb

最近,我发现如果我有好的硬件,我可以最大化mysql性能.由于我一直在使用InnoDB,我在my.ini中添加了额外的配置

这是新添加的配置:

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
Run Code Online (Sandbox Code Playgroud)

然后我重新启动所有服务.但是当我使用我的程序时,出现错误"未知的表引擎'InnoDB'".

我试图解决这个问题:

  1. 我删除日志文件重启服务但我仍然得到错误.

aar*_*man 20

其他解决方案并没有解决我的问题.调整config后,InnoDB引擎被禁用.

删除mysql数据中的borked ib_*日志文件修复了我的问题,并允许我为InnoDB使用2G缓冲池:http://www.turnkeylinux.org/forum/support/20090111/drupal-6-problem-enable-innodb #评论-131


rec*_*hie 11

我只是重试删除日志文件并重新启动服务,它的工作原理!但要小心分配2G,因为innodb可能无法编译,如果2G不起作用,请使用1G.

  • 只是删除日志文件并重新启动mysql为我工作..谢谢 (2认同)

Sea*_*ary 8

我也遇到过这个问题.问题是我为InnoDB分配的内存多于服务器对变量的内存innodb_buffer_pool_size.MySQL没有抱怨无法在其日志中分配内存.


bin*_*iam 5

我尝试了所有这些(以及许多其他方法),但对我有用的一种方法是:

  • 停止 MySQL 服务器
    /etc/init.d/mysql stop
  • 删除日志文件
    rm ib_logfile0 ib_logfile1
  • 重命名 InnoDB 文件(如果没有其他效果,因为它将被重新创建) mv ibdata1 old_ibdata1
  • 我有这个配置/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
    
    Run Code Online (Sandbox Code Playgroud)
  • 启动MySql服务器
    /etc/init.d/mysql start