9
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

パスやファイル名を指定して、コマンドライン上からデータベースにdumpファイルをインポートする

DBからエクスポートしたデータ、バックアップファイル、要するにdumpやsqlファイルを別のDBへインポートする方法です。

mysqlの外から実行

-- 取り込みたいデータファイルと同じ場所まで移動して実行
$ mysql -u [MySQLのユーザ名] -p db_name < example.sql

-- 取り込みたいデータファイルのパスを指定して実行
$ mysql -u [MySQLのユーザ名] -p db_name < /Users/user_name/Desktop/example.sql

もう少し詳しく解説

GUI(phpMyAdminなどの管理画面)で入れるやり方もありますが、ここではコマンドライン上でデータを読み込む方法を記載しています。当方の実行環境は以下の通りです。

  • MySql: 5.7.26
  • phpMyAdmin: 4.9.3
  • MAMP: 5.6
  • macOS: Mojave (10.14.6)
$ mysql -u [MySQLのユーザ名] -p db_name < example.sql

db_name の部分にはデータベース名を入力し、example.sql の部分には取り込みたいデータのパスを指定します。そのためDBが既に作成済みであることが前提となります。まだ作成していない場合はDB作成後に実行してください。
パスは、今いる場所から見たパスになるので、mysql -u xxx -p db_name < example.sql のようにファイル名だけ指定して実行させるとしたら、そのファイルがある場所まで移動すれば可能ということになります。
例えばデスクトップにあるダンプやsqlをインポートすると仮定すれば、cd Desktop/ のように移動してから mysql -u xxx -p db_name < example.sql を実行します。
ファイルがある場所以外(今回はデスクトップ以外の場所)から実行したい場合は、 mysql -u xxx -p db_name < /Users/user_name/Desktop/example.sql のように絶対パスを指定してあげれば大丈夫です。

以上が、mysqlのコマンドラインによる標準入力でdumpファイルを指定する方法でした。
ただしファイルサイズが大きすぎると、時間がかかりすぎるかエラーになってしまうこともあり、そういう場合はコマンドライン上でDBにログインした後に、sourceコマンドでMySQL内部からファイルを読み込むことも可能です。

mysqlの中から実行

/* MySQLへログイン */
$ mysql -u [MySQLのユーザ名] -p

/* (中略) */

/* 使用するDB名を指定 */
mysql> use db_name

/* 読み込みたいファイルのパスを指定 */
mysql> source /Users/user_name/Desktop/example.sql

パスの確認方法

余談ですがファイルのパスを確認したい場合は以下のような方法があります。

Macのファインダーからパスを確認

  1. ファインダーで該当のdump/sqlファイルを選択
  2. ファインダー画面下のパスバーを確認
  3. パスバー末端のファイル名を右クリックまたは control + クリックしてパス名をコピー 2.png

(パスバーが見えていない場合は、表示メニューから「パスバーを表示」を選択)
3.png

Visual Studio Code などのエディタからパスを確認

自分はエディタにVSCodeを使用していますが、エディタ上からファイルパスを確認する方法もあります。

  1. VSCodeで該当のファイルを開くか、親となるディレクトリを開く
  2. ファイル名の記載があるタブで右クリックまたは control + クリックしてパス名をコピー
    4.png

  3. または、画面左側の一覧から該当のファイルを右クリックや control + クリックでパス名をコピー
    5.png

参考URL

MySQLのデータベースをまるっとお引越し。 (エクスポート/インポート)
巨大ファイルのインポートにはmysqlのsourceコマンドを
MAMP で大きい MySQL ファイルをインポート/エクスポートする方法
【MAMP】コマンドで .sql ファイルをインポートする方法(Windows & Mac対応)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
9
Help us understand the problem. What are the problem?