MariaDB:MariaDB のログに「 InnoDB: Error: Table “mysql”.”innodb_table_stats” not found. 」と出てた時の対処方法

標題のエラーログが発生するの件 MySQL5.6 のバグである模様です。チケット参照: Bug #67179。対応手順をまとめました。(2017/11/19作成)

Database Free-Photos / Pixabay

0.環境

$ mysql --version
mysql  Ver 15.1 Distrib 10.1.29-MariaDB, for Linux (x86_64) using readline 5.1

1.エラーログ例

Nov 14 14:15:36 linuxserver systemd: Started MariaDB database server.
Nov 14 14:15:39 linuxserver mysqld: 2017-11-14 14:15:39 7fd1fadcf700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.

2.修正手順

1)mysqlコンソール上で作業

mysql> use mysql
Database changed
mysql> drop table innodb_index_stats;
Query OK, 0 rows affected, 1 warning (0.06 sec)
mysql> drop table innodb_table_stats;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> drop table slave_master_info;
ERROR 1051 (42S02): Unknown table 'mysql.slave_master_info'
mysql> drop table slave_relay_log_info;
ERROR 1051 (42S02): Unknown table 'mysql.slave_relay_log_info'
mysql> drop table slave_worker_info;
ERROR 1051 (42S02): Unknown table 'mysql.slave_worker_info'

2)対象テーブルの「.frmと「.ibd」ファイルを削除

$ sudo rm -vrf innodb_index_stats*
`innodb_index_stats.ibd' を削除しました
$ sudo rm -vrf innodb_table_stats*
`innodb_table_stats.ibd' を削除しました
$ sudo rm -vrf slave_master_info*
$ sudo rm -vrf slave_relay_log_info*
$ sudo rm -vrf slave_worker_info*

3)テーブル修正ファイルの取得

$ wget -O five-tables.sql http://bugs.mysql.com/file.php?id=19725

4)テーブル修正ファイルの適用

$ mysql -uroot -p mysql < ./five-tables.sql [/shell] 5)MariaDB 再起動 [shell] $ sudo systemctl restart mariadb.service [/shell] 以上 [amazon_auto_links asin="4797393114" locale="JP" title="基礎からのMySQL 第3版 (基礎からシリーズ)"]

About yoshimasa

埼玉県さいたま市在住、2男3女のパパです。Linux系の技術情報を中心にまとめています。1978年2月生まれ。