MariaDB5.5系からMariaDB10系に移行したDBでエクスポートするとエラー

MariaDB5.5系からMariaDB10系に移行したDBでエクスポートすると下記のエラー

$ mysqldump -u root -p --all-databases > /var/tmp/dump.db
mysqldump: Got error: 1932: "Table 'mysql.innodb_index_stats' doesn't exist in engine" when using LOCK TABLES

MariaDB 10.x では、mysql.innodb_index_stats テーブル等のテーブルへの DDL 操作が廃止されたので、mysqldump はこれらのテーブルの定義情報を取得しなくなりましたのでエラーとなります。

該当するテーブルを削除しようとするとエラーとなってので、該当のテーブルのファイル自体を削除することにします

# MariaDBを停止します
$ sudo systemctl stop mariadb

# mysqlのディレクトリに移動します
$ sudo cd /var/lib/mysql/mysql

# 上記のエラー以外にもエラーが上がったので、MariaDB10系から使っていないテーブルを違うディレクトリに移動
# mv innodb_index_stats.* /var/tmp/
# mv innodb_table_stats.* /var/tmp/
# mv transaction_registry.* /var/tmp/

ファイルを違うディレクトリに移動したらMariaDBを起動します

$ sudo systemctl start mariadb

上記の対応でDBのエクスポートが出来るようになりました

スポンサーリンク

0
0

LinuxCentOS 8,mariadb,MySQL

Posted by admin