ウェブサイト検索

すべての MySQL データベースを古いサーバーから新しいサーバーに移行する方法


サーバー間でのMySQL/MariaDB データベースの転送または移行は、通常、いくつかの簡単な手順で完了しますが、転送するデータの量によっては、データ転送に時間がかかる場合があります。

この記事では、すべてのMySQL/MariaDB データベースを古い Linux サーバーから新しいサーバーに転送または移行し、正常にインポートして、そこにデータが存在することを確認する方法を説明します。

重要な注意事項

  • 同じディストリビューションの両方のサーバーに同じバージョンの MySQL がインストールされていることを確認してください。
  • データベース ダンプ ファイルとインポートされたデータベースを保持するのに十分な空き領域が両方のサーバーにあることを確認してください。
  • データベースの data ディレクトリを別のサーバーに移動することは決して考えないでください。データベースの内部構造を決していじらないでください。いじると、将来問題が発生します。

MySQL データベースをダンプ ファイルにエクスポートする

まず、古いサーバーにログインし、 図に示すようにsystemctl コマンドを使用して mysql/mariadb サービスを停止します。

systemctl stop mariadb
OR
systemctl stop mysql

次に、mysqldump コマンドを使用して、すべてのMySQL データベースを単一のファイルにダンプします。

mysqldump -u [user] -p --all-databases > all_databases.sql

ダンプが完了したら、データベースを転送する準備が整います。

単一のデータベースをダンプする場合は、以下を使用できます。

mysqldump -u root -p --opt [database name] > database_name.sql

MySQL データベースのダンプ ファイルを新しいサーバーに転送する

ここで、scp コマンドを使用して、図に示すようにデータベース ダンプ ファイルをホーム ディレクトリ下の新しいサーバーに転送します。

scp all_databases.sql [email :~/       [All Databases]
scp database_name.sql [email :~/       [Singe Database]

接続すると、データベースが新しいサーバーに転送されます。

MySQL データベースのダンプ ファイルを新しいサーバーにインポートする

MySQL ダンプ ファイルが新しいサーバーに転送されたら、次のコマンドを使用してすべてのデータベースを MySQL にインポートできます。

mysql -u [user] -p --all-databases < all_databases.sql   [All Databases]
mysql -u [user] -p newdatabase < database_name.sql      [Singe Database]

インポートが完了したら、mysql シェルで次のコマンドを使用して、両方のサーバーのデータベースを確認できます。

mysql -u user -p
show databases;

MySQL データベースとユーザーを新しいサーバーに転送する

すべての MySQL データベース、ユーザー、権限、およびデータ構造を古いサーバーに新しいサーバーに移動する場合は、示されているように、rsync コマンドを使用して、mysql/mariadb データ ディレクトリから新しいサーバーにすべてのコンテンツをコピーできます。

rsync -avz /var/lib/mysql/* [email :/var/lib/mysql/ 

転送が完了したら、mysql/mariadb データ ディレクトリの所有権をユーザーおよびグループ mysql に設定し、ディレクトリのリストを作成してすべてのファイルが転送されたことを確認できます。

chown mysql:mysql -R /var/lib/mysql/
ls  -l /var/lib/mysql/

GUI を使用して MySQL データベースを移行する方法

最新のデータベース ツールを使用すると、ユーザーは MySQL データベースの移行タスクを効率化できます。主な要素は、移行プロセスの各ステップをガイドするユーザーフレンドリーなグラフィカル インターフェイスです。タスクの設定は数回クリックするだけで完了します。MySQL データベースを新しい宛先に転送するために手動でコマンドを入力する必要はありません。

通常、このようなツールは、データベース全体またはその一部を転送するさまざまな方法をサポートします。バックアップと復元、データベースのコピー、データのインポートとエクスポートなどが考えられます。

さらに、MySQL データ移行ツールは、スタンドアロン ソリューションとしても、残りのデータベース タスクすべてをカバーするのに適したdbForge Studio for MySQL のようなより強力なツールセットの一部としても使用できます。

それだけです!この記事では、すべての MySQL/MariaDB データベースをあるサーバーから別のサーバーに簡単に移行する方法を学びました。他の方法と比較して、この方法をどう思いますか?下記のコメントフォームよりご連絡をお待ちしております。