質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

4920閲覧

Macで.sql.gzファイルをMySQLにインポートする方法

lef

総合スコア12

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2019/08/27 22:08

Macで、xxx.sql.gzファイルをMySQLに取り込みたいです。
もともとdump.tarという形で貰ったファイルを解凍したらxxx.sql.gzファイルが出てきました。これをMySQLにインポートしたいです。

※このファイルは既成サービスのテストDBをdumpしたもので、データをインストールしたらrailsを用いてデモ開発に使用する予定です。

Macのターミナルで、

$ mysql -u root -p
$ gzcat ./(ファイル名).sql.gz | mysql -u root -p test;

というように入力すると

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'gzcat .xxx.sql.gz | mysql -u root -p test' at line 1

と返ってきます。

コマンドが間違っていますでしょうか?
それとも、それ以前に設定が違っている可能性ありますでしょうか?

mysqlなどの設定を見る必要がありましたら、どこを見ればいいか教えてください。

ちなみに、上記のコマンドに書いてあるtestという名前のDBは作っています。

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.02 sec)

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

gzcatだけで一度中身を見てみたらいいんじゃないですかね。
あとgzip tvfで余計なものが混ざってないか確認してみるとか。
あと、

sh

1$ mysql -u root -p 2$ gzcat ./(ファイル名).sql.gz | mysql -u root -p test;

の一行目って何を意図されてます?なんかこれだと2行目はmysqlのコマンドプロンプトに入っちゃってそうですけど。コロンついてるし

投稿2019/08/27 22:56

impepc

総合スコア86

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lef

2019/08/28 11:15 編集

mysqlのコマンドプロンプトに入っていました。 入らないでやったら少し進んだ感じがしましたが、下記のエラーが発生しました。 gzcat: ./xxx.sql.gz: unexpected end of file gzcat: ./xxx.sql.gz: uncompress failed ERROR 1064 (42000) at line 1411: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''?w?????????yY?o???T(???\0??Sn?b???k??tmZ\?\"Sj?#???,?M~??r+???' at line 1 ちなみに、gzcatで中身確認したら大量のデータが出てきたんですが、どこをどう見たら原因わかるのかが判断できず。。。
impepc

2019/08/28 12:32

エラー内容見たらそもそもgzファイル自体怪しいですね。 tarファイルの展開に失敗しているような感じです(tarを展開したらgzが出てくるって・・・) tar tvf dump.tarで中身を確認してみてください。 あと、できれば展開したときのコマンドも教えていただければ
lef

2019/08/28 12:38 編集

ありがとうございます。はい、dump.tarからgzではなくsqlを取り出したいです。。。 このように出ました。見ていただけたら嬉しいです。 $ tar tvf dump.tar drwxrwxr-x 0 xxx xxx 0 8 27 19:21 dump/ -rw-rw-r-- 0 xxx xxx 80275924 8 27 19:21 dump/xxx.sql.gz tar: Truncated input file (needed 80275968 bytes, only 80270336 available) tar: Error exit delayed from previous errors.
lef

2019/08/28 12:41

また、$ tar -xf dump.tar とすれば良さそうに思えたのですが、以下のようにまたgzが出てきてしまいました。 dump/xxx.sql.gz: Truncated tar archive tar: Error exit delayed from previous errors.
lef

2019/08/28 13:03

インストールし直して$ tar -xf dump.tar してみたらエラー起こらなかったです! ただ、xxx.sql.gz yyy.sql.gzのように2つのgzファイルが出てきただけで、、、 どうすればsqlで出せるのでしょうか・・・?
impepc

2019/08/28 13:08

tar tvfの時点でエラーが出ていますので、多分、tarファイルが壊れてます。 tar: Truncated input file (needed 80275968 bytes, only 80270336 available) 80275968バイト必要なのに80270336バイトしかないと出ています。 多分、元ファイル(dump.tar)が壊れてます。もう一度ファイルをもらった方がいいと思います。 そのときはshasumコマンドなどでハッシュを取っておいてもらって、受け取ったときに同じコマンドを叩いて同じハッシュが出るかどうか確認して、破損してないか確認することをお勧めします。
impepc

2019/08/28 13:16

たぶん、もう大丈夫じゃないですかね? 出てきた2つのファイルにzcat 使うなり、gunzip使うなりすれば解凍できると思います
lef

2019/08/28 14:22

できました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問