如何避免在mysqldump备份上使用“ use <database>”语句?

Lan*_*ano 6 mysql backup

我正在使用以下命令语法:

mysqldump -u<username> -p<password> --no-create-db --databases mydatabase > /var/backups_DB/MyDatabase-$(date +"%d-%m-%Y-%H:%M:%S").sql
Run Code Online (Sandbox Code Playgroud)

但是我找不到如何防止将“ use mydatabase”行插入到生成的文件中。我应该使用哪个选项?

小智 8

究竟。删除-数据库...

https://www.computerhope.com/unix/mysqldum.htm

“ --databases -B转储多个数据库。通常,mysqldump将命令行上的名字参数视为数据库名称,其后的名字视为表名称。使用此选项,它将所有名称参数视为数据库名称。CREATE DATABASE和USE语句包含在每个新数据库之前的输出中。”


tda*_*get 5

正如@wchiquito 在评论中所说,为了避免USE databasename在转储文件中有“ ”语句,您必须删除--databases选项。

如果您没有选择,您可以在之后使用Unix sed命令将其删除:

cat sourcefile.sql | sed '/USE `databasename`;/d' > destfile.sql
Run Code Online (Sandbox Code Playgroud)

托马斯