我正在使用这个命令语法:
mysqldump -u<username> -p<password> --no-create-db --databases mydatabase > /var/backups_DB/MyDatabase-$(date +"%d-%m-%Y-%H:%M:%S").sql
但我找不到如何防止“use mydatabase”行插入到生成的文件中。 我应该使用哪个选项?
完全正确。删除
--databases
...
https://www.computerhope.com/unix/mysqldum.htm
--数据库
-B
转储多个数据库。通常,mysqldump 将命令行上的第一个名称参数视为数据库名称,将后面的名称视为表名称。使用此选项,它将所有名称参数视为数据库名称。 CREATE DATABASE 和 USE 语句包含在每个新数据库之前的输出中。
正如 @wchiquito 在评论中所说,为了避免转储文件中出现“
USE databasename
”语句,您必须删除 --databases
选项。
如果您没有选择,可以随后使用 Unix sed 命令删除它:
cat sourcefile.sql | sed '/USE `databasename`;/d' > destfile.sql
托马斯
与 tdaget 的答案类似,您可以导入数据库转储,例如从备份中导入
cat sourcefile.sql | sed '/^CREATE DATABASE/d' | sed '/^USE/d' | mysql newdbname
到新数据库。
这将删除
CREATE DATABASE
和 USE
线。