错误 - 函数“innodb”已经存在

tra*_*dex 11 mysql innodb

我希望开始将一些 MyISAM 表转换为 INNODB。运行带有 MySQL 5.6 的 Ubuntu 14.04 服务器(apt-get 从 5.5 升级),4 核/8 线程 cpu 上的 32G ram。一开始有问题...

could not open single-table tablespace file .\mysql\innodb_index_stats.ibd after restart of MySQL
Run Code Online (Sandbox Code Playgroud)

Error: Table "mysql"."innodb_table_stats" not found.
Run Code Online (Sandbox Code Playgroud)

我遵循了 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'.
Run Code Online (Sandbox Code Playgroud)

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

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

innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 2
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1
Run Code Online (Sandbox Code Playgroud)

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

tra*_*dex 13

在 error.log 中抛出错误的插件在 my.cnf 中没有特别指定。于是我跑...

select * from mysql.plugin
Run Code Online (Sandbox Code Playgroud)

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

innodb ha_innodb.so
federated ha_federated.so
blackhole ha_blackhole.so
archive ha_archive.so
Run Code Online (Sandbox Code Playgroud)

不要删除您不确定的任何内容。以上对我有用,因为......

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

  • 您应该因列出哪个插件做什么而获得额外的荣誉,谢谢! (2认同)