回答:
mysqldump --no-create-info ...
また、以下を使用することもできます。
--skip-triggers
:トリガーを使用している場合--no-create-db
:--databases ...
オプションを使用している場合--compact
:追加のコメントを削除したい場合mysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Access denied for user ... to database '...' when doing LOCK TABLES
、使用--single-transaction
--where
。たとえば、--where="id=2"
これはうまくいくはずです:
# 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]
--no-create-db
を使用すると冗長になります--no-create-info
-p
は問題あり
ps -ef
)
-p
オプションの後mysqldump
にパスワードを省略すると、パスワードの入力を求められます。
>> 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
次のスニペットを使用することをお勧めします。巨大なテーブルでも問題なく動作します(そうしないと、エディターでダンプを開いて不要なものを削除しますよね?;)
mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql
少なくともmysql 5.xが必要ですが、最近は古いものを実行している人がいます。
区切りテキスト形式でデータをダンプするだけです。
承認された回答を使用してデータをエクスポートしようとすると、エラーが発生しました。
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