Answers:
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选项。
-无数据,-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
将导出数据,但也将导出创建触发器语句。如果像我一样,使用一个命令输出数据库结构(还包括触发器),然后使用上述命令获取数据,则还应使用“ --skip-triggers”。
因此,如果只需要数据:
mysqldump --no-create-info --skip-triggers