2

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

有没有一种简单的方法可以交换两个数据库,例如交换它们的名称,这样我们就可以切换网站使用哪个数据库进行最后一分钟的检查?即我们想将修复的数据库设置为活动数据库,但能够在不重新构建/重新导入整个导出版本的情况下进行翻转。

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

4

1 回答 1

1

交换两个名为db1and的数据库模式db2

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”)。
于 2016-01-14T09:31:05.207 回答