0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQLのリストア時のエラー対処(Unknown collation: 'utf8mb4_0900_ai_ci')

Last updated at Posted at 2025-03-03

Unknown collation: 'utf8mb4_0900_ai_ci'の対処法

mysqldumpで出力したバックアップデータを別環境でリストア(復元)できなかった際の対応メモ。

方法は他にも色々あるので、一例としてみてください。

エラー状況

リストア時に「Unknown collation: 'utf8mb4_0900_ai_ci'」というエラーが出てデータベースの復元ができない。

バックアップデータ内にある「COLLATE=utf8mb4_0900_ai_ci」という部分をすべて削ってしてしまえば、とりあえずエラーを出さずにリストアできる。しかし、バックアップデータが大きすぎて、テキストエディタでの編集ができない。

対処内容

1. 「構造のみ」と「データのみ」に分けて再度バックアップを実施

# 構造のみ場合(-d オプションをつけてmysqldumpする)
mysqldump -d -u root -h localhost test_db > "D:\backup\test_db_d.sql"
# データのみ場合(-t オプションをつけてmysqldumpする)
mysqldump -t -u root -h localhost test_db > "D:\backup\test_db_t.sql"

2. テキストエディタでバックアップファイルを修正

構造のみを出力したバックアップファイルをテキストエディタで開き、「COLLATE=utf8mb4_0900_ai_ci」の部分を一括置換などで除去。

データを含んだファイルは容量が大きすぎてテキストエディタで編集ができなかったが、構造のみとなり編集が可能となった。

3. 再度リストアの実行

先に構造のみのバックアップファイルをリストアし、次にデータのみのバックアップファイルをリストアする。
これで完了。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?