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リストア 実行エラーが出ていないのにデータが空のまま

Last updated at Posted at 2024-10-02

概要

初歩的なミスで行き詰まってしまったので共有します。

mysql -u root -p restore < example.dump

上記のようにmysqlコマンドを使用し、ダンプファイルからデータをインポートしたが、データが入ってこない。

実行した手順

リストア用のデータベースを新規作成

mysql -u root -p -e "CREATE DATABASE restore;"

dumpファイルを実行

mysql -u root -p restore < example.dump

実行後、エラーはではなかったが、phpmyadminで確認してみるとデータが空のままである。
image.png

結論

dumpファイル内で、異なるデータベースを参照するようになっていた。

example.dump
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `another_database` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;

USE `another_database`;

中身を見てみると、設定の中でUSEするテーブルを変更していた。
mysqlコマンドで実行先を指定していれば絶対にそのデータベースへ入ると思っていたので、dumpファイル内で実行先を変更できることは盲点だった

以下のように書き換えれば解決である。

example.dump
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `restore` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;

USE `restore`;

幸い事故には至らなかったが、実行先のファイルが稼働中だったら危なかったので、皆様も気を付けてほしい。

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?