mysqldumpデータのみ


回答:


553
mysqldump --no-create-info ...

また、以下を使用することもできます。

  • --skip-triggers:トリガーを使用している場合
  • --no-create-db--databases ...オプションを使用している場合
  • --compact:追加のコメントを削除したい場合

47
これがコピー貼り付けの完全なコマンドですmysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Yzmir Ramirez

2
を取得した場合はAccess denied for user ... to database '...' when doing LOCK TABLES、使用--single-transaction
Rolf

@YzmirRamirezありがとうございますが、FYIではWindowsで二重引用符を使用する必要がありました--where。たとえば、--where="id=2"
Kip

これは私にとって素晴らしいセーバーでした。ありがとう。
Ken Ingram、

149

これはうまくいくはずです:

# To export to file (data only)
mysqldump -u [user] -p[pass] --no-create-info mydb > mydb.sql

# To export to file (structure only)
mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql

# To import to database
mysql -u [user] -p[pass] mydb < mydb.sql

注:-p&の間にスペースはありません[pass]


12
--no-create-dbを使用すると冗長になります--no-create-info
James McMahon、2013年

4
後のスペース-pは問題あり
ません

12
通常、パスワードを指定せずに-pを使用して、パスワードがbash履歴に保存されないようにすることをお勧めします(コマンドの実行後にパスワードの入力を求められます)。
Dan

2
@Danのアドバイスに加えて、現在のプロセスをリストできるすべてのユーザーにパスワードを表示します(ps -ef
TMG

1
-pオプションの後mysqldumpにパスワードを省略すると、パスワードの入力を求められます。
Melle

22
 >> man -k  mysqldump [enter in the terminal]

以下の説明があります

--no-create-info、-t

ダンプされた各テーブルを再作成するCREATE TABLEステートメントを記述しないでください。注このオプションは、mysqldump出力からログファイルグループまたはテーブルスペースを作成するステートメントを除外しません。ただし、この目的で--no-tablespacesオプションを使用できます。

--no-data、-d

テーブルの行情報を書き込まないでください(つまり、テーブルの内容をダンプしないでください)。これは、テーブルのCREATE TABLEステートメントのみをダンプする場合(たとえば、ダンプファイルをロードしてテーブルの空のコピーを作成する場合)に役立ちます。

# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql

# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql

3
「-t」と「-d」オプションを2回使用する理由はありますか?
erwan 2018


2

次のスニペットを使用することをお勧めします。巨大なテーブルでも問題なく動作します(そうしないと、エディターでダンプを開いて不要なものを削除しますよね?;)

mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql

少なくともmysql 5.xが必要ですが、最近は古いものを実行している人がいます。


最近、プロダクションで4.xを使用しているシステムに接続しなければならない状況に遭遇しました。テーブルと列の名前にスペースがあり、私の意見では、基本的にすべてが間違っていました。
Elkvis


0

区切られたファイルにダンプしてみてください。

mysqldump -u [username] -p -t -T/path/to/directory [database] --fields-enclosed-by=\" --fields-terminated-by=,

0

承認された回答を使用してデータをエクスポートしようとすると、エラーが発生しました。

ERROR 1235 (42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

上記のように:

mysqldump --no-create-info

データをエクスポートしますが、トリガーの作成ステートメントもエクスポートします。私のように、1つのコマンドで出力データベース構造(トリガーも含む)を作成し、上記のコマンドを使用してデータを取得する場合は、「-skip-triggers」も使用する必要があります。

したがって、データだけが必要な場合:

mysqldump --no-create-info --skip-triggers
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.