275 文字
1 分
present in INFORMATION_SCHEMA's INNODB_SYS_TABLES table but missing from TABLES table
概要
RDSをmysql 8.0にアップグレードしようとしたらエラー
PrePatchCompatibility.logに以下のようなエラーが出ました。(xxxxxxxはデータベース名)
17) Schema inconsistencies resulting from file removal or corruption Following tables show signs that either table datadir directory or frm file was removed/corrupted. Please check server logs, examine datadir to detect the issue and fix it before upgrade xxxxxxx - present in INFORMATION_SCHEMA's INNODB_SYS_TABLES table but missing from TABLES tableスキーマ変更中にinterruptしてしまったときにtemporary tableが残る様子。
要らないので消してしまいます。
解決法
https://serverfault.com/a/1002705/556236 を参考に。
mysql> use xxxxxxx;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A
Database changedmysql> drop table `#mysql50##sql-105e_bcd3`;Query OK, 0 rows affected (0.41 sec)#mysql50# の部分は、ファイルシステムを参照する特殊な表記。sql-105e_bcd3の部分は以下のクエリーを実行して出力された値です。
select * from information_schema.innodb_sys_tables where name like '%#%';無くなったかを確認
mysql> select * from information_schema.innodb_sys_tables where name like '%#%';Empty set (0.01 sec)余談
- アップグレード自体は15分ぐらい。DBの容量は約100GB。
mysql> show variables where Variable_name = 'Version';+---------------+--------+| Variable_name | Value |+---------------+--------+| version | 8.0.17 |+---------------+--------+1 row in set (0.01 sec) present in INFORMATION_SCHEMA's INNODB_SYS_TABLES table but missing from TABLES table
https://blog.teraren.com/posts/rds-mysql8-upgrade/