ОШИБКА - функция 'innodb' уже существует

11

Я хочу начать преобразование некоторых таблиц MyISAM в INNODB. Запуск Ubuntu 14.04 Server с MySQL 5.6 (обновление apt-get с 5.5), 32G RAM на 4-ядерном / 8-процессорном процессоре. Изначально были проблемы с ...

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

и

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

Я последовал совету Роландо, и БД больше не рушится и не создает огромный error.log. (вышеперечисленные проблемы исчезли, просто описание ведущих событий)

Теперь я обеспокоен следующими ошибками, прежде чем что-то конвертировать в INNODB. Federated можно игнорировать из того, что я прочитал, вторая строка ниже (также тема этого поста) касается меня

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'.

добавил следующее в 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

Это не помогло. Не то чтобы я ожидал, что это устранит «существующую функцию» ... LOL

traildex
источник
Вы запускали mysql_upgrade?
dwjv
@dwjv не уверен, поэтому я запустил его и сказал: «Эта установка MySQL уже обновлена ​​до 5.6.17». Та же проблема «[ОШИБКА] Функция 'innodb' уже существует» в
файле

Ответы:

12

Плагины, генерирующие ошибки в файле error.log, не были специально указаны в my.cnf. Итак, я побежал ...

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

Не удаляйте ничего, в чем вы не уверены. Вышесказанное сработало для меня как ...

  • Я не использую Federated (обращается к данным в таблицах удаленных баз данных)
  • INNODB встроен в 5.6, плагин не требуется
  • Я не использую Blackhole (принимает данные, но выбрасывает их и не сохраняет)
  • Я не использую Архив (хранение больших объемов данных без индексов в очень маленьком месте)
traildex
источник
2
Вы должны получить дополнительный кредит для перечисления, что плагин делает что, спасибо!
n611x007
0

ПРОБЛЕМА

mysql.innodb_table_statsявляется частью установки MySQL 5.6. mysql_upgrade не генерирует их. Почему ?

  • Когда вы устанавливаете MySQL 5.6 с нуля, этот файл создается.
  • Файл innodb_table_stats.ibdне существует в схеме MySQL в MySQL 5.5
  • MySQL 5.5 mysql_upgrade не знает ни о каких системных таблицах innodb.
  • На самом деле .ibdв MySQL 5.6 есть пять (5) файлов в схеме mysql.

РЕШЕНИЕ

Пожалуйста, посмотрите на эти посты, которые я написал в прошлом году о том, как сделать их

Попробуйте!

RolandoMySQLDBA
источник
Спасибо, я решил это ранее с твоим опубликованным советом. Моя проблема здесь заключается в том, что «функция [ERROR] innodb уже существует» в
файле
0

Я получил подобные ошибки в PCLinuxOs. То , что я сделал , это просто переименованный файл /etc/my.cnfв /etc/my.cnf.bakи я смог запустить сервер MySQL. Я не знаю точную причину, но это сработало для меня. Настройки в этом файле могут быть противоречивыми.

Кришнадас ПК
источник