交换/切换两个MySQL数据库

时间:2013-08-14 14:51:40

标签: mysql

我们最近从实时数据库丢失了一些数据。我们将旧备份恢复为当前的实时数据库,并且一直在修复更新的部分损坏的数据库作为测试数据库。两者都运行在同一台服务器上,计划是测试数据库一旦我们对修复程序有效就会替换实时数据库。

是否有一种简单的方法来交换两个数据库,例如交换他们的名字,所以我们可以切换网站使用哪一个进行最后一分钟的检查?即我们希望将已修复的数据库设置为实时数据库,但能够在不重新构建/重新导入整个导出版本的情况下进行翻转。

我不知道MySQL是否允许以这种方式重命名数据库。

1 个答案:

答案 0 :(得分:1)

交换两个名为db1db2的数据库模式:

mysqladmin -uroot -pmypassword create swaptemp
mysqldump -uroot -pmypassword --routines db1 | mysql -u root -pmypassword swaptemp
mysqladmin -uroot -pmypassword drop db1
mysqladmin -uroot -pmypassword create db1
mysqldump -uroot -pmypassword --routines db2 | mysql -u root -pmypassword db1
mysqladmin -uroot -pmypassword drop db2
mysqladmin -uroot -pmypassword create db2
mysqldump -uroot -pmypassword --routines swaptemp | mysql -u root -pmypassword db2
mysqladmin -uroot -pmypassword drop swaptemp

<强>步骤:

  1. 将这些行复制到记事本中。
  2. 将所有对“db1”,“db2”,“mypassword”(+可选“root”)的引用替换为您的等价物。
  3. 在命令行上逐个执行(在提示时输入“y”)。