错误-函数'innodb'已经存在


11

我正在寻找开始将一些MyISAM表转换为INNODB。在4核/ 8线程cpu上运行带有MySQL 5.6(apt-get从5.5升级),32G ram的Ubuntu 14.04 Server。最初遇到麻烦...

could not open single-table tablespace file .\mysql\innodb_index_stats.ibd after restart of MySQL

Error: Table "mysql"."innodb_table_stats" not found.

我遵循了Rolando的建议,数据库不再崩溃或创建巨大的error.log。 (以上问题已不存在,仅描述了主要事件)

现在,在将任何内容转换为INNODB之前,我担心以下错误。从我阅读的内容中可以忽略联合,下面的第二行(也是本文的主题)与我有关

2014-05-19 01:50:57 30950 [Note] Plugin 'FEDERATED' is disabled.
2014-05-19 01:50:57 30950 [ERROR] Function 'innodb' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'innodb' with soname 'ha_innodb.so'.
2014-05-19 01:50:57 30950 [ERROR] Function 'federated' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'federated' with soname 'ha_federated.so'.
2014-05-19 01:50:57 30950 [ERROR] Function 'blackhole' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'blackhole' with soname 'ha_blackhole.so'.
2014-05-19 01:50:57 30950 [ERROR] Function 'archive' already exists
2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'archive' with soname 'ha_archive.so'.

从Rolando的发布建议中将以下内容添加到my.cnf中

innodb_buffer_pool_size=4G
innodb_buffer_pool_instances=2
innodb_read_io_threads=12
innodb_write_io_threads=12
innodb_io_capacity=300
innodb_log_file_size=128M

不确定是否应该有与INNODB相关的其他内容。根据我的发现还添加了

innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 2
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1

那没有帮助。我并不是希望它消除“现有功能” ...大声笑


您运行了mysql_upgrade吗?
dwjv 2014年

@dwjv不确定,所以我运行它并说“此MySQL安装已升级到5.6.17”。error.log中的“ [ERROR]函数'innodb'功能已经存在”的相同问题
Traildex 2014年

Answers:


12

在my.cnf中未特别指定在error.log中引发错误的插件。所以我跑了

select * from mysql.plugin

对于MySQL 5.6.17我删除了mysql.plugin中的以下行

innodb ha_innodb.so
federated ha_federated.so
blackhole ha_blackhole.so
archive ha_archive.so

不要删除不确定的内容。以上为我工作...

  • 我不使用联合(访问远程数据库表中的数据)
  • INNODB内置于5.6,无需插件
  • 我不使用Blackhole(接受数据但将其丢弃并不存储)
  • 我不使用存档(在很小的空间内存储大量没有索引的数据)

2
列出哪个插件可以做什么,您将获得额外的功劳,谢谢!
n611x007'9

0

问题

mysql.innodb_table_stats是MySQL 5.6安装的一部分。mysql_upgrade不会生成它们。为什么呢

  • 从头开始安装MySQL 5.6时,将生成该文件。
  • 该文件innodb_table_stats.ibd在MySQL 5.5的mysql模式中不存在
  • MySQL 5.5的mysql_upgrade不知道任何innodb系统表。
  • 实际上,.ibd在MySQL模式中,MySQL 5.6中有五个(5)文件。

请查看我去年写的有关如何制作这些帖子的信息

试试看 !!!


谢谢,我确实已经用您的建议解决了这个问题。我关心的是error.log中的“ [ERROR]函数'innodb'已经存在”
Traildex 2014年

0

我在PCLinuxO中遇到了类似的错误。我所做的只是将文件重命名为/etc/my.cnf/etc/my.cnf.bak并且我能够启动mysql服务器。我不知道确切的原因,但是对我有用。该文件中的设置可能有冲突。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.