我们如何从 mysqldump 文件中恢复具有不同名称的 mysql 数据库。我不想打开转储文件并对其进行编辑。还有其他更好的方法吗?
您可以让 mysqldump 以不创建或选择数据库的方式创建转储。
示例:您正在转储数据库 db1 并将其加载到数据库 db2
这会将 CREATE DATABASE 和 USE 命令放入转储中
mysqldump -u... -p... --routines --triggers --databases db1 > /root/db1.sql
这不会放入 CREATE DATABASE 和转储中的 USE 命令(这是你想要的)
mysqldump -u... -p... --routines --triggers db1 > /root/db1.sql
您可以通过以下四 (4) 种方式之一将其加载到另一个数据库(例如 db2)中:
选项1
$ mysqldump -u... -p... --routines --triggers db1 | mysql -u... -p... -A -Ddb2
选项 2
$ mysqldump -u... -p... --routines --triggers db1 > /root/db1.sql $ mysql -u... -p... -A -Ddb2 < /root/db1.sql
选项 3
$ mysqldump -u... -p... --routines --triggers db1 > /root/db1.sql $ mysql -u... -p... -A -Ddb2 mysql> source /root/db1.sql
选项 4
$ mysqldump -u... -p... --routines --triggers db1 > /root/db1.sql $ mysql -u... -p... -A mysql> use db2 mysql> source /root/db1.sql
试试看 !!!