仅限mysqldump数据

Liz*_*ard 281 mysql mysqldump

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

mat*_*tei 512

mysqldump --no-create-info ...

如果您正在使用触发器,则还需要包括 --skip-triggers

如果您使用该--databases ...选项,您还需要包括--no-create-db

  • 这是复制粘贴的完整cmd`mysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where ='id = 12345678'` (42认同)
  • 如果你在执行LOCK TABLES``时得到``用户拒绝访问...到数据库'...',请使用``--single-transaction`` (2认同)

Ish*_*Ish 140

这应该工作:

# 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
Run Code Online (Sandbox Code Playgroud)

注意:-p&之间没有空格[pass]

  • 通常最好只使用-p而不提供密码,这样密码就不会存储在bash历史记录中(运行命令后会提示您输入密码). (12认同)
  • 使用`--no-create-info`时,`--no-create-db`是多余的 (10认同)
  • `-p`之后的空格很好 (4认同)
  • 除了@Dan的建议之外,它还使密码对任何可以列出当前进程的用户可见(`ps -ef`) (2认同)
  • 在“-p”选项后省略密码会使“mysqldump”提示输入密码。 (2认同)

Ang*_*dar 21

 >> man -k  mysqldump [enter in the terminal]
Run Code Online (Sandbox Code Playgroud)

你会发现以下解释

--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
Run Code Online (Sandbox Code Playgroud)

  • 是否有理由使用两次'-t'和'-d'选项? (3认同)

Jon*_*han 14

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

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


mik*_*oop 8

最好转储到压缩文件

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

Run Code Online (Sandbox Code Playgroud)

并使用 pv 来恢复apt-get install pv以监控进度

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

Run Code Online (Sandbox Code Playgroud)