使用mysqldump只转储数据,不包含任何表信息

问题描述 投票:0回答:10

我正在寻找转储 mysql 数据库中所有数据的语法。我不需要任何表格信息。

mysql database dump database-table database-dump
10个回答
676
投票
mysqldump --no-create-info ...

您还可以使用:

  • --skip-triggers
    :如果您使用触发器
  • --no-create-db
    :如果您使用
    --databases ...
    选项
  • --compact
    :如果你想去掉多余的评论

191
投票

这应该有效:

# 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]

之间没有空格

29
投票

如果您只想插入查询,请使用以下命令:

mysqldump --skip-triggers --compact --no-create-info


24
投票
 >> man -k  mysqldump [enter in the terminal]

您会发现以下解释

--无创建信息,-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

5
投票

最好转储到压缩文件

mysqldump --no-create-info -u username -hhostname -p dbname | gzip > /backupsql.gz

并使用 pv 恢复

apt-get install pv
来监控进度

pv backupsql.gz | gunzip | mysql -uusername -hhostip -p dbname


3
投票

建议使用以下代码片段。即使在巨大的桌子上也能正常工作(否则你会在编辑器中打开转储并删除不需要的东西,对吧?;)

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

至少需要 mysql 5.x,但是现在谁运行旧东西..:)


1
投票

只需将数据转储为分隔文本格式


1
投票

尝试转储到分隔文件。

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

1
投票

尝试使用接受的答案导出数据时,出现错误:

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

0
投票

例如,您可以使用不带列名的

apple
语句仅将
backup.sql
数据库表的数据导出到
INSERT
,如下所示。 *如果不存在则创建
backup.sql
,并且我的答案解释了如何导出架构和数据:

mysqldump -u john -p -t apple person > backup.sql

或者:

mysqldump -u john -p --no-create-info apple > backup.sql

并且,您可以使用

apple
语句仅将
backup.sql
数据库表的数据导出到
INSERT
,其列名如下所示:

mysqldump -u john -p -t -c apple > backup.sql

或者:

mysqldump -u john -p --no-create-info --complete-insert apple > backup.sql

并且,您可以使用

person
语句仅将
animal
数据库的特定表
apple
backup.sql
的数据导出到
INSERT
,其列名如下所示。 *可以在一个命令中指定多个表:

mysqldump -u john -p -t -c apple person animal > backup.sql

或者:

mysqldump -u john -p --no-create-info --complete-insert apple --tables person animal > backup.sql
© www.soinside.com 2019 - 2024. All rights reserved.