Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb

MySQL 5.6 リファレンスマニュアル  /  ...  /  SQL フォーマットバックアップのリロード

7.4.2 SQL フォーマットバックアップのリロード

SQL ステートメントから構成される mysqldump によって書き込まれたダンプファイルをリロードするには、それを mysql クライアントへの入力として使用します。--all-databases または --databases オプションを使用して、mysqldump によってダンプファイルが作成された場合、それには CREATE DATABASE および USE ステートメントが含まれ、データをロードするデフォルトのデータベースを指定する必要がありません。

shell> mysql < dump.sql

または、mysql 内から、source コマンドを使用します。

mysql> source dump.sql

ファイルが CREATE DATABASE および USE ステートメントを含まない単一データベースダンプである場合、まずデータベースを作成します (必要に応じて)。

shell> mysqladmin create db1


shell> mysql db1 < dump.sql

または mysql 内から、データベースを作成し、それをデフォルトのデータベースとして選択し、ダンプファイルをロードします。

mysql> USE db1;
mysql> source dump.sql

User Comments
  Posted by Jim Leek on October 13, 2011
I ran across the following error when restoring all databases from a mysqldump file:

ERROR 1005 (HY000) at line 156: Can't create table 'db1.testtable' (errno: 121)

Normally this error is caused by problems in the CREATE TABLE syntax for InnoDB tables. Of course as my SQL had been created from the mysqldump utility, I was confused how an error had appeared in the SQL code!

It turned out it was the presence of existing "ibdata1", "ib_logfile0" and "ib_logfile1" in /var/lib/mysql/ that was causing the problem.

The solution for me was to stop mysql, delete EVERYTHING in the /var/lib/mysql/ folder, then start mysql (this recreates fresh versions of the above files in addition to a fresh "mysql" database), and then re-run my import of the dump.sql file:

shell> mysql < dump.sql

(No username or password needed as the fresh "mysql" database has no root password.)

This worked perfectly and recreated all databases (including re-populating the "mysql" database with my previous data - including my old root password).
Sign Up Login You must be logged in to post a comment.