エラー-関数 'innodb'はすでに存在します


11

MyISAMテーブルの一部をINNODBに変換することを検討しています。MySQL 5.6(apt-getが5.5からアップグレードされた)でUbuntu 14.04サーバーを実行し、4コア/ 8スレッドCPUで32G ram。最初に問題がありました...

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の投稿されたアドバイスに従いましたが、DBがクラッシュしたり、巨大なerror.logを作成したりすることはありません。 (上記の問題はなくなり、主要なイベントについてのみ説明しています)

何かをINNODBに変換する前に、次のエラーについて心配しています。私が読んだものからFederatedは無視できます。下の2行目(この投稿の件名も)は私に関するものです

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] Function 'innodb' already exists」の同じ問題
Traildex

回答:


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に組み込まれ、プラグインは不要
  • 私はブラックホールを使用しません(データを受け入れますが、破棄して保存しません)
  • 私はアーカイブを使用していません(非常に小さいフットプリントでインデックスなしで大量のデータを保存しています)

2
あなたはどのプラグインが何をするかをリストするための追加のクレジットを受け取るべきです、ありがとう!
n611x007 2015

0

問題

mysql.innodb_table_statsMySQL 5.6インストールの一部です。mysql_upgradeはそれらを生成しません。どうして ?

  • MySQL 5.6を最初からインストールすると、そのファイルが生成されます。
  • ファイルinnodb_table_stats.ibdがMySQL 5.5のmysqlスキーマに存在しない
  • MySQL 5.5のmysql_upgradeは、innodbシステムテーブルを認識しません。
  • 実際、.ibdMySQL 5.6のmysqlスキーマには5つのファイルがあります。

解決

昨年私がそれらを作る方法について書いたこれらの投稿を見てください

試してみる !!!


おかげで、私は以前にあなたの投稿したアドバイスでそれを解決しました。ここでの私の関心は、error.logファイルに「[ERROR]関数『InnoDBは』は既に存在」である
traildex

0

PCLinuxOで同様のエラーが発生しました。私が行っているだけで、ファイルをリネームさ/etc/my.cnf/etc/my.cnf.bak、私は、MySQLサーバを起動することができました。正確な理由はわかりませんが、うまくいきました。そのファイルの設定が競合している可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.