MySQL / MariaDBの転送または移行 サーバー間のデータベースは通常、簡単な手順をいくつか実行するだけですが、転送するデータの量によっては、データ転送に時間がかかる場合があります。
この記事では、すべての MySQL / MariaDBを転送または移行する方法を学習します 古いLinuxサーバーから新しいサーバーへのデータベースを正常にインポートし、データがそこにあることを確認します。
重要な注意事項
- 同じディストリビューションの両方のサーバーに同じバージョンのMySQLがインストールされていることを確認してください。
- データベースダンプファイルとインポートされたデータベースを保持するために、両方のサーバーに十分な空き容量があることを確認してください。
data
の移動を検討しないでください 別のサーバーへのデータベースのディレクトリ。データベースの内部構造をいじらないでください。そうすると、将来問題が発生します。
MySQLデータベースをダンプファイルにエクスポート
まず、古いサーバーにログインして、 systemctlを使用してmysql/mariadbサービスを停止します。 示されているコマンド。
# systemctl stop mariadb OR # systemctl stop mysql
次に、すべての MySQLをダンプします mysqldumpコマンドを使用してデータベースを単一のファイルに変換します。
# 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 protected]:~/ [All Databases] # scp database_name.sql [email protected]:~/ [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 protected]:/var/lib/mysql/
転送が完了したら、mysql / mariadbデータディレクトリの所有権をユーザーおよびグループmysqlに設定し、ディレクトリリストを作成して、すべてのファイルが転送されたことを確認できます。
# chown mysql:mysql -R /var/lib/mysql/ # ls -l /var/lib/mysql/
それで全部です!この記事では、すべてのMySQL/MariaDBデータベースをあるサーバーから別のサーバーに簡単に移行する方法を学びました。他の方法と比較して、この方法をどのように見つけますか?下記のコメントフォームからご連絡を差し上げます。