最近,我发现如果我拥有良好的硬件,我可以最大化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
然后我重新启动所有服务。但是当我使用我的程序时,出现错误“未知的表引擎'InnoDB'”。
我试图解决这个问题:
答案 0 :(得分:20)
其他解决方案并没有解决我的问题。 调整config后,InnoDB引擎被禁用。
删除mysql数据中的borked ib_ *日志文件修复了我的问题,并允许我为InnoDB使用2G缓冲池: http://www.turnkeylinux.org/forum/support/20090111/drupal-6-problem-enable-innodb#comment-131
答案 1 :(得分:11)
我刚试过删除日志文件并重新启动服务,它就可以了! 但要注意分配2G,因为innodb可能无法编译,如果2G不起作用,请使用1G 。
答案 2 :(得分:8)
我也遇到过这个问题。问题是我为InnoDB分配的内存多于服务器对变量innodb_buffer_pool_size
的内存。 MySQL没有抱怨无法在其日志中分配内存。
答案 3 :(得分:4)
我尝试了所有这些(以及许多其他人),但对我来说有效的方法是:
/etc/init.d/mysql stop
rm ib_logfile0 ib_logfile1
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
启动MySql Server
/etc/init.d/mysql start
答案 4 :(得分:1)
如果你完全破坏你的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
答案 5 :(得分:0)
从备份恢复时出现此问题。问题是我在my.ini中有一些不同的设置。因此,如果有人遇到此问题,请务必设置相同的设置(复制my.ini),停止MySQL服务,然后恢复整个数据文件夹,然后再次启动MySQL服务。
答案 6 :(得分:0)
在MariaDB 10.1中,应该禁用一个ignore-builtin-innodb
选项以停止修复错误。