2017-02-13 11 views
1

先週、私たちは大規模なサイト移行を行い、約1200のmysql dbをダンプして復元しました。しかし、このプロセスでは、 "mysql"データベースを復元し、新しいサーバー上ですでに作成されているすべての権限とユーザーを失いました。"mysql"データベースが別のサーバーから復元されました。 「再生する」方法がありますか?

mysqlデータベースを再生成する方法はありますか?私はユーザーと特権を失うことについて気にしませんが、古いユーザーをこの新しいサーバーに連れて行きたいとは思いません。

ご協力いただきありがとうございます。

+0

あなたはほとんど情報を与えることはほとんどできませんでしたが、私はあなたがMySQLをインストールしてdatadirディレクトリに向かい、以前のインストールのファイルと置き換えた(mysql'フォルダが含まれています)。私は正しい?適切なバックアップをとるには遅すぎますか?ファイルダンプ、生成された神が理由を知っていること、破損していないという保証はありません。 –

+0

本当のmysqlダンプがある場合は、mysqlサーバを再インストールしてインポートするのが最も安全な方法です。 mysqlのバージョンを変更した場合、mysqlフォルダを上書きしないでください。古いデータベースフォルダを移動/コピーする場合、mysqlフォルダを上書きしないでください。 – Tim

+0

私はあなたの質問がトピックではないと思っています。なぜなら、それはプログラミングではなくデータベース管理についてです。 –

答えて

0

あなたのデータが壊れていたことをお詫び申し上げます!ほとんどの経験豊かなDBAは、あなたが行ったようなインポートを行う前にバックアップを取っています。なぜなら、私たちはあなたが一度は間違いを記述したからです。

mysqlデータベースを上書きしてからMySQLサーバを再起動した場合、いいえ、あなたは不運です。データを上書きしました。再起動すると、そのサーバーで使用される正式なユーザー、パスワード、および権限のセットになります。

この場合、上書きされる前の古いデータの別のバックアップがある場合のみです。

データを上書きするだけで、まだFLUSH PRIVILEGESを発行していない場合や、MySQLサーバを再起動していない場合でも、古い許可はまだメモリに残っています。あなたはpt-show-grantsのようなツールでそれらを回復することができます。

MySQL 5.7を使用している場合、これは一時的にpt-show-grantを破棄したので、修正のためにPercona Toolkitのバージョン2.2.20以上を使用する必要があります(詳細はhttps://bugs.launchpad.net/percona-toolkit/+bug/1435370を参照)。

+0

おかげビルでなければなりません。これはきれいな復元でした。ダンプファイルを復元すると、新しいサーバーにはユーザーデータベースがありませんでした。新しいmysqlサーバをインストールしてから、すべてのデータベースを再度復元します(もちろん、mysql 1を除く) – jspasiuk

関連する問題