現在、MySQLバックエンドを備えたWindowsアプリケーションに取り組んでいます。次に、古いデータベース構造とデータを新しいデータベースサーバーにコピーします。
MySQLワークベンチを使用してこの問題を解決するにはどうすればよいですか?
ありがとうございました!
これは、MySQL Workbechのみの方法です。開発から本番へのシナリオのように、新しいサーバーにインストールされていない場合があります。このように、mysqlimportユーティリティを実行する必要があります。
最初にエクスポートとインポートを行わずにデータベースを直接コピーするには、 MySQL Utilities コマンドを使用できます mysqdbcopy
:
mysqldbcopy --source=root:root@localhost --destination=root:root@localhost world:world_clone
このコマンドは、Windows cmd
またはMySQL Utilities Consoleのいずれかで実行できます。
phpmyadminをインストールした場合は、次の手順を使用できます。
a)エクスポート方法で、"カスタム-可能なすべてのオプションを表示"を選択します。
b)[フォーマット固有のオプション]で、[構造とデータ]が選択されていることを確認します。
c)"オブジェクト作成オプション"で、 "ADD CREATE DATABASE/USEステートメント"もマークされていることを確認してください。
SQLファイルをエクスポートします。
scpソースサーバーからターゲットサーバーにエクスポートされたファイル
ターゲットサーバーのphpmyadminで、 "Import"関数を使用して、SQLファイルをデータベースにインポートします。インポートプロセス中に選択する必要のあるカスタムオプションはありませんでした。
中間のエクスポート/ダンプファイルを作成せずに、あるサーバーから別のサーバーに(ローカルサーバーでも)データベースを直接コピーするには、MySQL Workbench内でウィザードを使用してこれを行うことができます。 Database
-> Migration Wizard
に移動します。 (編集: docs )
そこから、以前に接続リストに保存した場合は、ソース接続と宛先接続を選択できます。または、その場で新しい接続を作成できます(チェックボックスをオンにして、接続リストに追加してください)。
また、データベースの種類を選択するか、それらの汎用バージョンを選択し(それが何と呼ばれるか覚えていない)、使用しているデータベースサーバーの種類を把握させます。通常、MariaDBはMySQLの「バイナリドロップイン置換」として設計されているため、MySQLまたはMariaDBデータベースのいずれかに対してMySQLを選択できます。
どのデータベースを選択するように求められた場合、INFORMATION_SCHEMA
は読み取り専用であり、選択しないでください。それ以外の場合、特定のニーズがない限り、たとえばサーバー(およびおそらく関連するWebサイト)のクローンを作成している場合は、おそらく他のすべてのテーブルを選択します。
そこから、MySQL Workbenchにその処理を実行させます。最後にデータをコピーするまで、スキーマを古いサーバーから新しいサーバーにリバースエンジニアリングするプロセスを実行している間、次をクリックし続けます。
続行する前に変更を加えることができる多くのポイントがあります。また、プロセス中に発生する可能性のある問題と警告を表示することもできます。
完了した後も、クローンデータベースのユーザーを(手動で?)追加する必要があります。おそらく自動でusersテーブルを複製する方法もあるでしょうが、私はそれについて知りません。他に何もない場合は、コマンドラインからこれを行うことができます。私はこれを私のローカル開発者に使用しているので、私はとにかく追加するだけです。
このツールを使用する方が、通常の方法でデータベースをエクスポートおよびインポートするよりも速いと思います。しかし、それは確かに簡単です。
このツールは実際には、たとえばライブデータベースのコピーをローカルの開発サーバーまたはその逆に取得するための一般的なツールとしてではなく、さまざまな種類のデータベース(PostgressSQLやMySQLなど)間のより複雑な移行用に設計されていますその逆。
同じメニューの下に、Database
-> Schema Transfer Wizard
があります。これは、新しいサーバーバージョンに更新する必要がある場合に使用されると理解しました。 2つのツールの違い、または実際の使用例は明確にはわかりません。
MySQLワークベンチでの標準のインポート/エクスポート操作の実行方法に関する説明は、ドキュメントが SQLデータエクスポートおよびインポートウィザード および テーブルデータエクスポートおよびインポートウィザード です。
ダンプファイルを保存して読み取るのではなく、[接続]を選択するだけで、開発サーバーとライブサーバーの間で直接インポート/エクスポートできる場合は、すばらしいでしょう。
コマンドラインからでも実行できると思います。