只有mysqldump数据
我正在寻找转储所有数据在我的MySQL数据库的语法。 我不想要任何表信息。
mysqldump --no-create-info ...
如果你正在使用触发器,你还需要包含--skip-triggers
如果你正在使用--databases ...
选项,你还需要包含--no-create-db
这应该工作:
# 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]
之间没有空格
>> man -k mysqldump [enter in the terminal]
你会发现下面的解释
–no-create-info,-t
不要编写重新创build每个转储表的CREATE TABLE语句。 注意:此选项不排除从mysqldump输出创build日志文件组或表空间的语句; 但是,您可以使用–no-tablespaces选项来达到此目的。
– 无数据,-D
不要写任何表行信息(也就是不要转储表内容)。 如果您只想转储表的CREATE TABLE语句(例如,通过加载转储文件来创build表的空副本),这非常有用。
# 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
build议使用下面的代码片段。 即使有巨大的桌子也能正常工作(否则你会在编辑器中打开转储并去掉不需要的东西,对不对?)
mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql
至less需要MySQL 5.x ,但现在运行旧东西的人.. 🙂
只需以分隔文本格式转储数据。
尝试转储到分隔文件。
mysqldump -u [username] -p -t -T/path/to/directory [database] --fields-enclosed-by=\" --fields-terminated-by=,
当试图使用接受的答案导出数据时,我得到一个错误:
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
将导出数据,但也会导出创build触发器语句。 如果像我一样用一个命令输出数据库结构(也包括触发器),然后使用上述命令获取数据,则还应该使用“–skip-triggers”。
所以如果你想要的只是数据:
mysqldump --no-create-info --skip-triggers
如果您只想要INSERT查询,请使用以下命令:
mysqldump --skip-triggers --compact --no-create-info