MySQL で 1つのデータベースから別のデータベースにデータをコピーする

Mehvish Ashiq 2023年1月30日
  1. あるデータベースから別のデータベースにデータをコピーする
  2. MySQL サーバーから MS SQL Server にデータをコピーする
  3. まとめ
MySQL で 1つのデータベースから別のデータベースにデータをコピーする

あるデータベースから別のデータベースにデータをコピーするさまざまな方法について学習します。

データをコピーするこの戦略は、データ複製で非常に役立ちます。データレプリケーションにより、データをさまざまなサーバーに提供し、矛盾することなくすべてのユーザーが利用できるようにすることができます。

データレプリケーションの利点には、データの可用性と信頼性の向上、および通信オーバーヘッドの削減が含まれます。あるデータベースサーバーから別のデータベースサーバーにデータベースの全部または一部をコピーできます。

このチュートリアルでは、MySQL 内(同じユーザー)、MS SQL Server(同じユーザー)、および MySQL から MS SQL Server(異なるユーザー)にデータをコピーする方法を説明します。

あるデータベースから別のデータベースにデータをコピーする

MySQL サーバーの使用

MySQL サーバーには studentsperson という名前の 2つのデータベースがあります。person データベースには customers という名前のテーブルがあり、students データベースには person データベースにコピーしたい student という名前のテーブルがあります。

1 人のユーザー(root)で 1つのサーバー(MySQL 8.0.27)内のデータをコピーすることに注意することが重要です。次のデータベース(赤いボックスを参照)とテーブル(緑のボックスを参照)があります。

あるデータベースから別のデータベースにデータをコピーする-mysql サーバーの現在のデータ

次の SQL クエリを使用して、student テーブルを students データベースから person データベースにコピーします。

#MySQL Version 8.0.27
CREATE TABLE person.students SELECT * FROM students.student; 

データをコピーした後、データベースとテーブルを観察します(下のスクリーンショットを参照)。person データベースには、customersstudents の 2つのテーブルがあります。

ソースデータベースから student テーブルをコピーしたいとお気づきかもしれませんが、宛先データベースで students という名前が付けられているのはなぜですか。これは、SQL クエリで学生という名前を付けたためです。

あるデータベースから別のデータベースにデータをコピーする-mysql サーバーにコピーした後のデータ

MS SQL Server の使用

ここでは、MS SQL Server に teachersperson という名前の 2つのデータベースがあります。person データベースには customers というテーブルがあり、teachers データベースには person データベースにコピーしたい teacher という名前のテーブルがあります。

1 人のユーザーで 1 台のサーバー(MS SQL Server)内のデータをコピーします。以下のスクリーンショットで、現在のデータベース(赤いボックスを参照)とテーブル(緑のボックスを参照)を確認できます。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーの現在のデータ

次のコマンドを使用して、teacher という名前のテーブルを Teachers データベースから Person データベースにコピーします。

#MSSQL Server
SELECT * INTO Person..teacher FROM Teachers..teacher;

コピーした表は、以下のスクリーンショットで確認できます。これで、Person データベースに 2つのテーブルができました。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーにコピーした後のデータ

MySQL サーバーから MS SQL Server にデータをコピーする

データベースから別のユーザーのデータベースにデータをコピーする必要があるかどうか想像したことがありますか?これは、さまざまなユーザーが関与していることを意味します(場合によってはさまざまなマシンが関与します)。

ここでは、MySQL Server から MS SQL Server にデータをコピーする方法を説明します(同じコンピューター上に、MySQL 用と MS SQL Server 用の 2 人のユーザーがいることに注意してください)。

MS SQL Server でデータベースを右クリックし、Task -> Import Data を選択します。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーにデータをインポートを選択す

次のスクリーンショットの[次へ]ボタンをクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーで[次へ]をクリックします

次のスクリーンショットでは、データソースが .Net Framework Data Provider for MySQL であることを確認し、MySQL データベース名、ポート番号、およびサーバーをそれぞれ students3306、および localhost として記述します。次に、[次へ]をクリックします。

データベース名とサーバーIP アドレスが異なる場合があることに注意してください。同じマシンで 2 台のサーバーを使用しています。そのため、localhost を使用しました。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーでソースポートサーバーを選択する

MySQL サーバーのユーザー名パスワードを入力し(下のスクリーンショットを参照)、[次へ]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-ユーザーログイン情報

宛先が SQL Server Native Client 11.0 として選択されていることを確認し、サーバーの名前とデータベース名を確認して、認証を選択します。このチュートリアルでは、Windows 認証を使用しています。次に、[次へ]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーで宛先を選択する

次の画面で[次へ]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーにクエリパート a を書き込む

要件に従って SQL クエリを記述します。次のコマンドを使用して、student テーブルからすべてのレコードをコピーしています。[次へ]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーにクエリパート b を書き込む

宛先テーブル名(MS SQL Server に表示される名前)を入力し、[次へ]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーの宛先テーブル名

以下の画面で[次へ]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーの情報

次のスクリーンショットで、[すぐに実行]を選択するか(緑色のボックスを参照)、パッケージを保存して後で実行することができます(赤色のボックスを参照)。[次へ]をクリックします。

あるデータベースから別のデータベースにデータをコピーします-mssql サーバーで今すぐ実行します

次の画面で[完了]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーの完全なウィザード

ここで、次の画面はデータがコピーされたことを示しています。[閉じる]をクリックします。

あるデータベースから別のデータベースにデータをコピーする-mssql サーバーでの転送が成功する

コピーされたテーブルについて MSSQL Server を確認すると、次のスクリーンショットに緑色のボックスが表示されます。

あるデータベースから別のデータベースにデータをコピーする-mysql を mssql サーバーにコピーした後

まとめ

上記の議論を考慮して、あるデータベースから別のデータベースにデータをコピーすることは、セキュリティ上の懸念、データの可用性、信頼性などのさまざまな理由から学ぶことが重要であると結論付けました。また、世界中のさまざまなユーザーにデータへのアクセスを提供できます。

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook