「mysqldump –all-databases」内容をデータベースへインポートしたいのですが、

投稿者: Anonymous

前提
・色々試行錯誤しているので、何回かやり直している状態です


Q1.「mysqldump –all-databases」で取得したDUMPデータをインポートする際、既存同名があった場合、上書きされるでしょうか?
・データベースは「IF NOT EXISTS」がコメントアウトされている(?)から、上書きされる?

CREATE DATABASE /*!32312 IF NOT EXISTS*/

・テーブルは削除後、作成される?

  DROP TABLE IF EXISTS `テーブル名`;

Q2.データベース構成をインストール直後の構成に戻すことは可能でしょうか?
・何回かdumpデータをインストールしたのですが、可能ならその前の状態へ戻したい


環境
・MySQL5.7

解決

はじめに、
“IF EXISTS”は存在した場合
“IF NOT EXISTS”は存在しない場合に実行されます。

Q1.「mysqldump –all-databases」で取得したDUMPデータをインポートする際、既存同名があった場合、上書きされるでしょうか?

いえ、存在した場合DROPされ、そのあとに再作成されるはずです。
DUMPデータを見ると、DROP TABLE文のあとにCREATE TABLE文が書かれていると思います。
また、存在しているが “IF NOT EXISTS” を入れずにCREATE TABLEを発行した場合、エラーが発生するはずです。

ERROR 1007 (HY000): Can't create database 'NewYork'; database exists

データベース構成をインストール直後の構成に戻すことは可能でしょうか?

DBを一旦削除し、再度インストールするのがいいかもしれません。

また、何度も試すような可能性があるなら、Dockerでmysqlサーバを用意してそれにdumpを適用する方法を取ると良いかもしれません。使い捨てがかなり楽になるとおもいます。(かならずしもDockerである必要はありません。)

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *