ターミナルを使用して MySQL データベースをあるホストから別のホストに移動する


データベース サーバーの移行またはデータベースのバックアップ中に、MySQL/MariaDB データベースのエクスポートとインポートを行うには、複数の方法があります.最も速いのはコマンドラインのようです. PHPMyAdmin または SequelPro クライアントよりもはるかに高速のようです. MySQL/MariaDB のエクスポートとインポート用の Linux コマンドを共有しています.

MySQL データベースのエクスポート



MySQL データ バックアップ プログラム mysqldump は、テーブル データとデータベース スキーマの SQL ステートメントのダンプ ファイルを作成します.

Linux シェルで MySQL にログインします. MySQL サーバーの設定に応じて、

mysqldump -u username -p database_name > db_dump.sql

mysqldump は成功メッセージを表示しません.コマンドを実行したディレクトリで ls を実行して、 DB-dump.sql を見つけます.特定のコンテンツをダンプに含めたり除外したりして、gzip 圧縮することができます.詳細については、MySQL ダンプ: データベース バックアップ プログラム resources を参照してください.

MySQL ダンプを新しいサーバーに移動する



端末で scp を使用して、データベースのバックアップを移動します.

scp user@oldhost:/home/user/db_dump.sql user@newhost:/home/user


詳細については、この投稿を確認して、ターミナルを使用してサーバーから別のサーバーにファイルを移動してください.

利便性とデータベースのサイズに応じて、SQL ダンプを FTP や SCP 経由で移動したり、単純にダンプを public_html ディレクトリに移動して HTTP でアクセスしたりできます.宛先サーバーで WGET コマンドを実行して、ダンプ ファイルをコピーします.

root ユーザーとは別に、新しいデータベースと新しいデータベース ユーザー アカウントを作成する必要があります.

MySQL データベースのインポート



宛先サーバーの Linux シェルで、データベースの SQL ダンプ ファイルがあるディレクトリに移動し、次のコマンドを実行します.

mysqlimport -u username -p database_name < db_dump.sql


MySQLコマンドラインでインポートし、MySQLコマンドラインにログインして実行することもできます

mysql> use database_name;
mysql > source db_dump.sql


または、Linux シェルでこの 1 つのコマンドを実行します

mysql -u username -p database_name < db_dump.sql


mysqldump |データベース バックアップ プログラム



MySQL コンソール内で mysqldump を実行しないでください. mysqldump は MySQL コマンドではありません.これは、Linux シェルで実行される別のプログラムです.

mysqldump コマンドは、CSV、その他の区切りテキスト、または XML 形式で出力を生成することもできます. mysqldump は、復元する前に出力を表示および編集できるため、便利で柔軟です.ただし、SQL ステートメントの実行にはディスク I/O 操作が含まれるため、データの復元は遅くなる可能性があります. mysqldump の最適な使用例は、小さなサイト、WordPress ブログ データベース、またはプロジェクトの開発段階です.大規模なデータベースの場合は、物理的なバックアップと復元を使用する方が適切です.

mysqldump は、ある MySQL サーバーから別の MySQL サーバーにデータをコピーすることで、データベースにデータを入力することもできます.

mysqldump --opt db_name | mysql --host=remote_host -C db_name


mysqldump オプション


--opt デフォルトで有効.--opt は --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset の省略形
  • --skip-add-locks ロックを追加しないでください
  • --skip-opt --opt によって設定されたオプションを無効にする
  • --verbose 詳細モード
  • --where 指定された WHERE 条件で選択された行のみをダンプします
  • --xml XML 出力の生成

  • mysqldump フィルタ オプション


  • --tables オプションの後にテーブル名引数を追加して、それらのテーブルのみをダンプします
  • --ignore-table ダンプからテーブルを除外する --ignore-table=db_name.tbl_name
  • --no-data, -d テーブルの CREATE TABLE ステートメントのみをダンプします