sql >> データベース >  >> RDS >> Mysql

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

    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データベースをあるサーバーから別のサーバーに簡単に移行する方法を学びました。他の方法と比較して、この方法をどのように見つけますか?下記のコメントフォームからご連絡を差し上げます。


    1. ストアドプロシージャを実行する場合、CommandType.Textを使用するのと比較してCommandType.StoredProcedureを使用する利点は何ですか?

    2. SQL Server(T-SQL)でのCHARINDEX()関数のしくみ

    3. データベースモデリング

    4. to_charによるフォーマット間隔