1 问题背景
使用mysqldump命令可以方便的对数据库进行备份,如下:
mysqldump -uroot -p****** test > test.sql
上述命令表示将test数据库备份到test.sql文件中。
备份完成后,我们打开test.sql文件,可以看到在这个sql文件中包含了创建test数据库中所有表及数据的SQL语句。
在另外一台电脑上,基于test.sql我们想恢复test数据库,执行以下命令时出现问题:
mysql -uroot -p****** test < test.sql
系统提示:Unkown database test ....
2 原因分析
出现上述问题的原因是:在要恢复数据库的电脑上并不存在test数据库,而备份产生的test.sql文件中也没有包含创建test数据库的指令。
3 解决方法
根据上述分析,我希望在test.sql中直接包含有创建test数据库的指令,由此,想到了 --databases 备份多个数据库的参数。
修改备份命令:
mysqldump -uroot -p****** --databases test > test.sql
备份后打开test.sql文件,可以看到在文件的开头有创建test数据库的指令。
修改恢复命令:
mysql -uroot -p****** < test.sql
执行上述恢复命令后,即使该电脑上原来没有test数据库,也能完整的创建并恢复test数据库。
转载请注明原文地址: https://ju.6miu.com/read-17750.html