" MySQL的"数据库从另一台服务器恢有没有办法让它重生?#34;?

时间:2017-02-13 13:23:51

标签: mysql

上周我们正在进行大型网站迁移,转储大约1200个mysql数据库并恢复它们。但是在这个过程中,我们恢复了" mysql"数据库,然后我们失去了已在新服务器上创建的所有权限和用户。

有没有办法重新生成mysql数据库?我不介意丢失用户和权限,但我不想将旧用户带到这个新服务器。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

很抱歉听到您破坏了数据!大多数经验丰富的DBA都会像你们那样进行导入之前进行备份,因为我们都犯了你至少描述过一次的错误。

如果你重写了MySQL服务器,因为你覆盖了mysql数据库,那么不,你运气不好。您已覆盖数据,重新启动后,它现在是该服务器使用的官方用户,密码和权限集。

在这种情况下,你唯一的机会就是在你的旧数据被覆盖之前有另一个旧数据备份。

如果您只覆盖了数据,但尚未发出FLUSH PRIVILEGES,并且如果您还没有重新启动MySQL服务器,那么旧的授权仍然在内存中。您可以使用pt-show-grants等工具恢复它们。

注意如果您使用MySQL 5.7,这暂时破坏了pt-show-grants,因此您需要至少使用Percona Toolkit的2.2.20版本来修复(有关详细信息,请参阅https://bugs.launchpad.net/percona-toolkit/+bug/1435370)。