我可以从mysqldump备份中还原另一个“mysql”系统数据库吗?

基本上,我所做的是:

mysqldump -uroot -pxxx <some_options> --result-file Backup.sql --databases mysql customappdb 

以后做是否理智?

 mysql -uroot -pxxx < Backup.sql 

或者我需要采取特殊的预防措施? 我正在运行5.1.73社区。

如果MySQL的主要版本是相同的,那么将mysqldump从一个MySQL实例到另一个MySQL实例的mysqldump转换成另一个没有任何问题。

  • 你可以mysqldump MySQL 5.0.x系统表并加载到MySQL 5.0.x
  • 您可以mysqldump MySQL 5.1.x系统表并加载到MySQL 5.1.x
  • 你可以mysqldump MySQL 5.5.x系统表并加载到MySQL 5.5.x
  • 你可以mysqldump MySQL 5.6.x系统表并加载到MySQL 5.6.x

你不能这样做到更高版本或更低的版本,因为MySQL的每个主要版本的mysql.user表格布局会改变 。

查看我的文章,了解为什么以及如何分别转储系统表

  • Apr 24, 2014 : mysql:将所有权限还原到pipe理员用户
  • Oct 17, 2014 : 从MySQL 5.1.73升级到5.6.21的任何已知问题?

导入mysql的dump文件'backup.sql'会将系统数据库“mysql”和数据库customappdb一起恢复。如果现有的系统“mysql”数据库已经存在,它将会删除它。

关于mysql的导入命令,你的语法是正确的,你可以继续。