Mysqldump问题

5
我正在尝试使用mysqldump命令转储一个大型数据库。我想在生成的SQL文件中避免'use database'命令。这是因为我想用不同的名称创建相同的数据库。由于SQL文件大小较大,我无法打开并编辑该SQL文件。
我尝试了--no-create-db,但仍然在转储文件中得到'use'命令。
请帮忙解决。
4个回答

9
也许你使用过类似这样的命令: mysqldump -u -p <其他选项> --database your_database > file.sql 我发现当你使用 --database 选项时,脚本会生成一行 'use your_database'。因此,不要使用该选项,那行就不会出现了。
mysql -u -p <other options> your_database > file.sql

1

你或许应该在ServerFault上发布这个问题,但如果你使用的是Linux系统,你可以考虑使用sed(或perl/python脚本)来替换数据库名称,或者删除"use"行。


1

做到这一点的方法是针对每个数据库运行一次 mysqldump。我的做法是 mysqldump -u 用户名 -p --tables 数据库名。这会转储一个数据库中的所有表并删除USE数据库语句。


0

我尝试了--no-create-db,但仍然在转储文件中得到了"use"命令。 - Pramod Sivadas
好的,那么只需要使用sed命令将以下内容替换:sed -i 's/use old_db_name/use new_db_name/' db_dump.sql - rytis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接