mysqlデータベースをインポートします。 phpMyAdmin の制限を回避して大規模な MySQL データベースをインポートする方法 コンソールを介してダンプから MySQL データベースを復元する方法

25.12.2023 写真とビデオ

こんにちは、友達! 🙂

今日は、コンソールでの MySQL の操作についての会話を続け、MySQL データベースをエクスポートする手順に注目することにしました。

この記事では、MySQL データベースをダンプする方法と、MySQL から Excel ファイルおよび csv 形式にデータをアップロードする方法について説明します。

1 つまたは複数のデータベースのダンプの作成、個々のテーブルおよび任意の結果からのデータのエクスポートなど、情報を取得するためのさまざまなオプションを見ていきます。 選択するリクエスト。

また、サーバー コンソールと MySQL コマンド ラインで MySQL データベースからデータを出力する方法についても説明します。

この記事では、phpMyAdmin やその他のビジュアル ツールを使用してデータをエクスポートする方法については説明しません。

まず第一に、このトピックに関する十分な資料がインターネット上にすでに存在しているからです。 しかも、それは高品質の素材なので、コピーペーストする気はありません。

次に、私自身、記事の 1 つで、MySQL データベースから SQL ファイルに情報を出力するプロセスを簡単にレビューしました。そこでは、 について説明しました。

そのため、コンソールの操作に関する情報が役立つ可能性のあるプロの開発者やシステム管理者ではなく、データベースを phpMyAdmin にエクスポートする方法の説明だけを求めて来た場合は、上記のリンクにある情報を読むだけにとどめることができます。 。

私のことを正しく理解していただきたいのです。私は決してあなたを気分を害するつもりはありませんが、あなたのビジネスに最大限の利益をもたらすように時間を費やし、探していたものを手に入れてほしいだけです。

導入部分はこれで終了です。MySQL データベース ダンプを作成するためのコンソール コマンドのレビューに進みます。保存されるデータの量で並べ替えることにしました。データベース全体のエクスポートから始まり、個々のテーブルとその結果で終わります。任意のクエリ。

コンソール経由で MySQL データベース ダンプを作成する

初めに少し説明させていただきたいと思います。

データベースダンプは一連の SQL コマンドが含まれるファイルであり、これを起動すると、データベースとテーブルを作成したり、それらに情報を入力したりできます。 ダンプは、MySQL データベースをダウンロードして別のサーバーまたは既存のサーバー内にコピーする場合に必要です。

また、ご存知ない方もいるかもしれませんが、MySQL データベースのバックアップは基本的に、特定の期間に作成されたデータベースのダンプであり、必要に応じてデータベースの構造とデータを復元できます。

データのエクスポート- これは、テキスト エディタまたはグラフィック エディタでさらに作業するために、テーブルからテキスト形式で情報を抽出するだけです。

したがって、これらのアクションのコマンドは若干異なります。

データベース ダンプを作成するために、MySQL には という組み込みユーティリティがあります。 mysqldumpこれは、サーバー コンソールまたは他のシェルの MySQL コマンド ラインの外で使用する必要があります。

したがって、最も単純で一般的なオプション (MySQL コンソールで特定のデータベースからデータをエクスポートして別のサーバーに転送するか、内部コピーする) では、次のコマンドを実行する必要があります。

Mysqldump -u ユーザー名 -p データベース名 > パスとダンプファイル名

このユーティリティは、SQL コマンドを使用したファイルの形式でのみ MySQL データベース ダンプを作成できるため、ファイルにどの拡張子を選択しても、その内容は同じになります。 また、ファイルを作成できるように、MySQL から情報をエクスポートする前に、ファイルが配置されるディレクトリの書き込み権限を確認することを忘れないでください。

突然サーバー上のすべてのデータベースのダンプを作成する必要がある場合は、次のコマンド オプションを使用します。

Mysqldump -u username -p --all-databases > path_and_dump_file_name

いくつかの特定のデータベースのみをダンプするには、次のパラメータを指定して mysqldump を呼び出す必要があります。

Mysqldump -u ユーザー名 -p --databases データベース名 1、データベース名 2、... > パスとダンプファイル名

その結果、いずれの場合も、含まれるテーブルの構造 (フィールド、そのタイプ、インデックス、キーなど) を作成するためのコマンドと、テーブルにデータを埋めるための操作を含む MySQL データベース ダンプを受け取ることになります。

このオプションは、データベース全体の復元とコピーにのみ適しています。

特定の MySQL テーブルのバックアップを作成し、そのデータを読み取り可能な形式で取得する方法についてさらに詳しく説明します。

MySQL テーブルのダンプとデータのエクスポート

特定の MySQL データベース テーブルのダンプを作成するには、同じユーティリティが必要です。 mysqldump、次のパラメータを使用して呼び出されます。

Mysqldump -u ユーザー名 -p データベース名 テーブル名 1, テーブル名 2, ... > パスとダンプファイル名

mysqldump を呼び出すときに、必要なテーブルをパラメータ値として指定できます。 --テーブル、パラメータを使用する場合 --データベース無視されます:

Mysqldump -u ユーザー名 -p --databases データベース名 1、データベース名 2 --テーブル テーブル名 1、テーブル名 2、... > パスとダンプファイル名

上記の例では、次のエラーが表示されます。

Mysqldump: データベースの選択時にエラー: 1049: 不明なデータベース "database_name1" が発生しました

ご覧のとおり、リスト内の最新のデータベースのみが使用されます。 原則として、この動作は非常に論理的です。 指定されたテーブルがすべてのデータベースに存在するとは限りません。

さて、MySQL データベース テーブルのダンプを受け取りました。 これを使用して、それらを復元したり、構造とともにコピーしたりできます。

しかし、管理者に送信して通常のテキスト エディタまたはスプレッドシート エディタで表示できるように、ファイルに保存されている情報を、できれば読み取り可能な形式で取得する必要がある場合はどうすればよいでしょうか? MySQL にもこのためのツールがあります。

ユーティリティに電話するオプションは、計画の達成に役立ちます mysqlコンソールから特定のパラメータを使用して:

Mysql -u ユーザー名 -p データベース名 -e "SELECT * FROM テーブル名"

このコマンドを使用すると、MySQL コマンド ラインを使用せずに、必要なデータベースに対してクエリを実行し、結果をコンソールに出力できます。

データをコンソールに出力せずにファイルに書き込むには、次のようにコマンドを補足する必要があります。

Mysql -u ユーザー名 -p -e "SELECT * FROM テーブル名" > パスとファイル名

これらの構造のおかげで、テーブルのすべてのフィールドに格納されているデータだけでなく、特定のフィールドに格納されているデータも取得できます。 これを行うには、ワイルドカード (*) 記号をカンマで区切って必要な記号に置き換えます。

その結果、出力はヘッダー形式のフィールド名とすべてのレコードのフィールドに関する情報を含む通常のテキスト ファイルになります。 作成時に指定した解像度に関係なく、通常のテキスト エディタで開くことができます。

MySQL データベースからデータを xls または csv 形式でエクスポートして、結果のファイルがスプレッドシート エディタで正しく表示されるようにしたい場合は、その方法については後ほど説明します :)

バックアップの作成とクエリを使用した MySQL データベースからのデータの出力

MySQL データベース (1 つまたは複数、および個々のテーブル) をダンプする方法について説明しました。 ただし、実際には、1 つのテーブルに限定されないデータ セットをエクスポートする必要がある場合があります。 または、テーブルから一部のデータのみを選択する必要があります。

企業プロジェクトの開発者は、マネージャーからあらゆる種類の統計データの提供を求められたときに、特にこの問題に遭遇することがよくあります。 または、テーブルの特定の部分をバックアップしてすぐに復元する必要がある場合。

バックアップには同じユーティリティが必要です mysqldump、次のように呼び出す必要があります。

Mysqldump -u ユーザー名 -p データベース名 テーブル名 --where "lookup" > パスとダンプファイル名

その結果、テーブル全体の構造を作成するための SQL コマンドを含むファイルを受け取ります。テーブルの作成後、ルックアップ クエリを使用して選択された情報が埋め込まれます。

1 つまたは複数のテーブルに格納されているデータを取得する必要があるだけの場合は、前のケースでテーブル内のすべてのデータを取得するときに使用したコマンドを、いくつかの点を明確にして変更する必要があります。

Mysql -u ユーザー名 -p -e "SELECT * FROM テーブル名 WHERE ルックアップ" > パスとファイル名

ご理解のとおり、ディレクティブを使用してリクエストで指定されたさまざまな説明に加えて、 どこ、他の SQL 構造を使用できます。 参加する, 連合

必要な統計を収集できます:)

次のコマンドを使用して、MySQL コマンド ラインで作業するときに同じアクションを実行することもできます。

SELECT * FROM データベーステーブル WHERE ルックアップ INTO OUTFILE "パスとファイル名";

このコマンドは、サンプリング結果を含むファイルを作成するために特別に設計されています。 さらに、結果はファイルにエクスポートできるだけでなく、変数に書き込むこともでき、出力データはさまざまな方法でフォーマットできます。

上記に該当する場合は、このコマンドを呼び出すためのパラメータとオプションの完全なリストをここで見つけることができます - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

mysqldump についての簡単な説明の締めくくりとして、パラメータのリストを指定してコマンドを呼び出して、MySQL データベースとテーブルの最適化されたダンプを作成し、そこからデータベースと個々のテーブルを復元する場合よりも短時間で復元する変形例を紹介したいと思います。通常の通話:

mysqldump -u ユーザー名 -h ホストまたは IP_MySQL サーバー -p --no-autocommit --opt データベース名 > パスとダンプファイル名;

実験のために、このオプションを使用して、サイズ 143 MB の MySQL データベースをダンプしました。 その後の復元には、特別なパラメーターを指定せずに mysqldump を呼び出して作成したダンプからデータベースを復元した場合は 1 分 3 秒かかりましたが、59 秒かかりました。

これは小さなことだということに同意します。 ただし、これは一定量のデータの場合に限ります。 1GB を超えるダンプを作成するときにこの手法を使用すると、違いはさらに顕著になります。

このような状況が発生した場合は、まず MySQL データベース ダンプをアーカイブすることを忘れないでください。 一番いいのはtar.gzです。 そうすれば、回復にかかる時間はさらに短くなります。

MySQL から Excel および CSV ファイルにデータをエクスポートする

MySQL からこれら 2 つの形式への情報の出力に関する情報を 1 つのブロックに結合したのは無駄ではありませんでした。 これらは非常に似ており、ほぼ同じ方法 (テーブル形式で情報を構造化するため) に使用され、エクスポート用の同じコマンドが呼び出されます。

ご存知のとおり、これらの形式の唯一の大きな違いは、xls および xlsx 拡張子のファイルは Microsoft Office Excel で作成され、Windows でのみ動作するのに対し、csv ファイルはより汎用的であり、多くのエディターで操作が可能であることです。

これは、xls が Microsoft Office Excel 以外の場所で開かないという意味ではありません。 同じ OpenOffice もその逆を裏付けています。

ただし、これを可能にするには、ソフトウェア製品にこのサポートが存在する必要があります。 csv ファイルはメモ帳などの通常のテキスト エディタでも読み取ることができますが、この形式は完全に読み取ることができません。

まず、SQL クエリの結果は xls または csv にのみエクスポートできるという事実から始めましょう。これについては以前に学習しました。 1 回の操作でデータベース全体を 1 つのファイルに出力することは不可能です。

まず、これは最適ではありません。なぜなら... データベースに大量の情報が保存されている場合、そのようなファイルは開かれない可能性があります。 そして第二に、ファイル内の情報をテーブルとフィールドに分割する方法が明確ではありません。

いいえ、もちろんこれを実行することは可能ですが、1 つのコマンドで実行できる可能性は低く、一般にコンソールでこれを実行する人はいないでしょう。 これらの目的には、特別なソフトウェア、または少なくともスクリプトが必要になると思います。

MySQL データベース全体からコンソールで一度に 1 つまたは複数の xls ファイルに情報をエクスポートする方法を突然知った場合は、それについてコメントに書いてください。 これについて読んで、多くの人にとって役立つと思います。

したがって、MySQL から xls および csv にデータをエクスポートする方法について話している場合、これはユーティリティを使用してサーバー コンソールで直接実行できます。 mysqlまたは、前回の記事で紹介した作品です。

順番に始めましょう。

次のコマンドを使用して、サーバー コンソールで MySQL データベースからデータを csv および xls 形式に直接エクスポートできます。

の上 Linuxシステム:

Mysql -u ユーザー名 -d データベース名 -p -e "SELECT * FROM データベーステーブル;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > path_and_file_name。 csv

原則として、どうしても必要な場合は、このコマンドを使用して MySQL データを Excel ファイルにエクスポートできます。 しかし、正直に言うと、私はこれに実際に取り組んだことがなく、最終的に何が起こるかわかりません。 現在 Windows で作業しています。 Linux でこのコマンドを使用する場合は、作業結果についてコメントに書き込んでください。 誰にとっても興味深い情報になると思います。

の上 ウィンドウズ:

残念ながら、この場合、上記のコマンドを使用して MySQL テーブルから CSV にデータをエクスポートすることはできません。 Linux とは異なり、Windows には、Linux の sed のような、スレッドを操作するためのコンソール コマンドが組み込まれていません。

もちろんインストールすることもできますが、面倒です。 あるいは、次のようにすることもできます CygWin— Windows システム用の Linux コンソール エミュレータ。

すでにインストールされている場合は大丈夫です。 そうしないと、選択した方法を使用して MySQL データベースからデータをエクスポートするのに多大な問題が発生することになります。

しかし、情報を xls ファイルに抽出するのは 5 コペックほど簡単です :) 次の方法で起動するのは非常に簡単で、私はこれを個人的に試しました。

Mysql -u ユーザー名 -d データベース名 -p -e "SELECT * FROM データベーステーブル;" > パスとファイル名.xls

このファイルは Microsoft Office Excel で何の問題もなく開きました。 唯一のことは、それを開くときに、開かれているファイルの実際の形式が指定された拡張子と異なることを警告するメッセージが画面に表示されたことです。

しかし、アクションを確認すると、ドキュメントは問題なく開きました。すべての情報は、テーブル自体に保存されている形式でセルに分割されました。

Microsoft Office Excel で特定の操作を実行すると、将来問題が発生する可能性がありますが、そこまで詳しくは調べていません。 少なくとも、普通にデータを調べた限りでは、何も異常は見当たりませんでした。

このプログラムまたは他のプログラムで MySQL からエクスポートされた xls ファイルの使用中に問題が発生した場合は、コメントでお知らせください。

上記の方法を使用すると、原則として MySQL データベースの内容を csv ファイルにエクスポートできます。 ただし、テーブルのさまざまなフィールドのデータが区切り文字なしでまとめて書き込まれるため、通常は CSV ファイルを操作するテーブルを操作するさまざまなプログラムでうまく表示されない可能性があります。

ちなみに、OpenOffice は気にしません :) MySQL データベースの内容を xls にエクスポートする方法で取得した情報を自動的に区切ります。 彼がどのようにそれを行うのか分かりませんが、それを使用することをお勧めします:)

さて、同じ Microsoft Office Excel では、表内の 1 つのレコードに対応するすべての情報が区切り文字なしで 1 つのセルに書き込まれて表示されました。 他のテーブルエディタも同じことをすると思います。

したがって、MySQL データベースを csv ファイルにエクスポートする場合は、エディターが理解できる特殊文字で情報を区切って行う必要があります。

そして、徐々に MySQL データを csv および xls にエクスポートする 2 番目の方法、つまり MySQL コマンド ラインを使用する方法に近づいてきました。

したがって、この方法で MySQL データを CSV ファイルにエクスポートするには、次のコマンドが必要です。

SELECT * FROM データベーステーブル INTO OUTFILE "パスとファイル名.csv" フィールドが "," で囲まれている """ 行が "\n" で終了しています;

実行の結果、呼び出し時に指定したパスに CSV ファイルが受信されます。このファイルは、ほとんどの最新のスプレッドシート エディタで正しく開くことができます。 念のため、このコマンドは MySQL データベースに接続した後にのみ実行する必要があることに注意してください。

このコマンドは、MySQL データを xls ファイルにエクスポートして Microsoft Office Excel で正しく表示するのにも最適です。 この場合にのみ区切り文字は必要ありません。 情報をセルに分割するのを妨げます。

SELECT * FROM データベーステーブル INTO OUTFILE "パスとファイル名.xls";

ただし、実際には、すべてが私が説明したほど単純であるわけではありません。 コマンドの実行中に、コンソールに次のエラーが表示され、エクスポートが完了できない場合があります。

エラー 1290 (HY000): MySQL サーバーは --secure-file-priv オプションを使用して実行されているため、このステートメントを実行できません

これは、MySQL サーバーが次のオプションを使用して起動されたことが原因で発生します。 --secure-file-priv。 私個人としては、コンソールで作業するために WAMP OpenServer キットに含まれる MySQL 配布キットを使用しているため、この問題が発生しました。これにより、この方法で MySQL サーバーが起動されます。

問題を解決するには 2 つの方法があります。

  • MySQL サーバーの起動パラメータを変更する
  • 最終的な MySQL エクスポート ファイルへのパスを変更します。

最初の方法は私には複雑すぎるように思えました。 OpenServer の設定を詳しく調べる必要がありますが、これはその後の状況をすべて考慮して私が書いたものではありません 🙂 したがって、私は 2 番目の方法を取ることにしました。 同様の問題が発生した場合は、私の後に同じ問題を繰り返してください。

まず、MySQL コマンド ラインに移動し、次のいずれかのコマンドを実行する必要があります。

「secure_file_priv」のような変数を表示します。 SELECT @@GLOBAL.secure_file_priv;

両方を実行した結果が MySQL グローバル変数の値になります。 secure_file_privこれには、MySQL データのエクスポートおよびインポート操作を実行できるディレクトリへのパスが含まれています (将来的には、データ インポートに関する記事へのリンクが追加されます)。

それらの。 コマンドを使用する場合 データを読み込むそして 選択...をOUTFILEにエクスポートおよびインポートされたファイルは、このディレクトリ内にのみ配置できます。

私の場合、この変数は通常次のように設定されていました ヌル、 なぜなら すでに述べたように、私はコンソールで作業するために、OpenServer に含まれるディストリビューションの MySQL ユーティリティを使用しています。 この値は、指定されたコマンドを使用した MySQL データのエクスポートおよびインポート操作が完全に終了したことを示します。

後で判明したように、これは、ボックス化された WAMP サーバーおよび MAMP サーバーを使用する場合によくある状況です。

残念ながら、私の場合、MySQL グローバル変数の値を変更する通常の方法を使用することはできませんでした。

SET 変数名 = 値;

その結果、コンソールには次のエラーのみが表示されました。

エラー 1238 (HY000) 行 1: 変数 "secure_file_priv" は読み取り専用変数です.

その結果、変数の値を変更するには secure_file_privエクスポートおよびインポート操作を開くには、MySQL 構成ファイル mysql.ini に移動する必要がありました。このファイルは MySQL ディストリビューションのルート ディレクトリにあります。MySQL が WAMP/LAMP/ に含まれている場合は別の方法でアクセスできます。 MAMPサーバーの構築。

ちなみに、ファイル交換スプールディレクトリへのパスを変更したい場合も同様の操作が必要です。

私の場合、この変数はコメント形式でのみ構成にすでに存在していました。

Secure-file-priv = "%dprogdir%\\userdata\\temp"

持っていない場合は、セクションに最初から書いてください (少なくとも私にとってはそこにありました)。

コメントを外して、書かれたままの形で使用することにしました。 それらの。 MySQL からデータをエクスポートしてインポートし直すと、ファイルはディレクトリに保存されるようになりました。 c:\openserver\userdata\temp\.

設定を変更した後 (ちなみに、どれでも)、変更を有効にするために、可能であれば、サーバーまたは設定を編集した別のサービスを再起動することを忘れないでください。

念のため、MySQL サーバーを再起動した後、変数を再度表示してください。 secure_file_privそしてその値をクリップボードにコピーします。

次に、最初と同じようにコマンドを呼び出し、MySQL データベースからの情報が保存されるファイルの名前の前にのみ、変更する変数に格納されているパスを次の形式で書き込む必要があります。

SELECT * FROM データベーステーブル INTO OUTFILE "secure_file_priv_value\file_name.csv";

この後、私の場合は MySQL からのデータのエクスポートが機能しました。

大事なポイント! Windows で MySQL を使用する場合は、ファイルへのパスを指定するときに「\」を「/」に変更することを忘れないでください。そうしないと、次のようなエラーが発生します。 --secure-file-privまだまだ登場し続けます。

これで、MySQL データベースとそのテーブルをダンプする方法、および MySQL テーブルからさまざまな形式でデータを出力する方法に関する記事は終わりです。 コメントにレビューを書いて、実際に最も頻繁に使用するスクリプト オプションをみんなと共有してください。

記事が気に入った場合は、記事をソーシャル ネットワークに再投稿するか、以下のフォームを使用して著者に感謝の意を表し、基本的なホスティング料金を支払うことができます。

皆さん頑張ってください、またお会いしましょう! 🙂

追伸: ウェブサイトが必要な場合、または既存のウェブサイトに変更を加える必要があるが、時間や希望がない場合は、私がサービスを提供します。

5年以上の経験プロフェッショナルなウェブサイト開発。 と連携 PHP

このレッスンでは、次のような重要な問題について説明します。 データベースのエクスポートそして データベースのインポート MySQL。 そもそもなぜデータベースをエクスポートするのかと疑問に思われるかもしれません。 原則として、これはデータベースをバックアップする目的で行われ、念のためにデータベースが常に手元にあるようにします。 結局のところ、データ損失につながる可能性のあるホスティング事故など、不可抗力の状況から免れる人は誰もいません。 別の例としては、サイトに損害を与えようとするハッカーによる攻撃が考えられます。 実際、そのような例はたくさんあるでしょう。

データベースのインポートは、データベースを現在のホスティングに「再アップロード」する必要がある場合、または別のホスティングに移動する場合に使用します。 これはウェブマスターによって実際に行われることもよくあります。

私たち自身で データベースのエクスポートそして データベースのインポート- タスクは単純です。 これらのアクションを実装するためのアルゴリズムを一生覚えておくために、これらのアクションを一度実行する価値はあります。 例を挙げて、これがどのように行われるかを見てみましょう。

データベースをエクスポートするには、ホスティング管理パネルに移動し、データベース セクション - MySQL データベースに移動する必要があります。

エクスポートするデータベースを選択します (phpMyAdmin に移動します)。 この例では、データベースの名前は「cl209038」です。

1) 最初のケースでは、「高速」を選択し、形式を SQL のままにして「OK」ボタンを押します。 その結果、データベースのコピーがコンピューターにダウンロードされます。

2) 2 番目の場合は、「標準」を選択します。 データベースのエクスポート設定を含むページが表示されます。 以下に示すように、すべてのテーブルを選択し、エンコードと圧縮レベルを選択します。 残りの部分は、原則として変更する必要はありません。 「OK」ボタンをクリックすると、データベースがコンピュータにエクスポートされます。

ご覧のとおり、それだけです。 データベースのエクスポート MySQL は難しい作業ではありません。

データベースをインポートするには、ホスティング管理パネルに移動し、MySQL データベースのセクションに移動する必要もあります。 ここには 2 つのオプションがあります。新しいデータベースを作成するか、既存のデータベースにエクスポートする必要があります。

たとえば、サイトを別のホスティングに移動する場合は、データベースの作成が必要になります。 同じホスティングを使用しており、データベースがすでに作成されている場合は、このデータベースを選択してデータをそこに「再アップロード」するだけです。 もちろん、それを削除してから、新しい (空の) ものを作成してアップロードすることもできます。

1) データベースはすでに存在します。 データベースのコピーをインポートするデータベースを選択します。 データベースのインポートメニューが表示されます。

インポートするデータベース コピー ファイルを選択します。 必要に応じて、データベースのエンコードと形式を変更できます。 次に「OK」ボタンをクリックします。 インポート後、システムはすべてが正しく行われたかどうか、またはプロセス中にエラーが発生したかどうかを通知します。 エラーが発生した場合は、ホスティング上のデータベースを削除し、空のデータベースを作成してデータベースを再度インポートしてみてください。

2) 新しいデータベースの作成。 ホスティング管理パネルに移動し、MySQL データベースのセクションを選択します。 MySQL データベース管理について説明します。

目的のデータベース名とパスワードを指定します。 「作成」ボタンをクリックします。 その結果、新しい (空の) データベースが作成されます。その中に、以前に保存したデータベースのコピーをインポートする必要があります。

MySQL データベースのエクスポートとインポートについて説明したかったのはこれだけです。 これらの質問に関して問題がある場合は、このレッスンにコメントを書いてください。

ほとんどのサイトのデータベース (DB と略されます) のサイズ (重量) は数十 MB (メガバイト) です。 さまざまなプロジェクトの開始時のデータベースの初期サイズはサイト自体 (CMS) の構造によって異なりますが、その後、新しいレコードが出現するたびにその重みが増加します。

記録には、ユーザー登録、コメント、個人メッセージ、製品、ニュース、およびサイト データベースに保存されているその他のデータに関する情報が含まれる場合があります。

私は、データベース サイズが 500 MB (マガバイト) を超え、中には 2 GB (ギガバイト) に達するサイトもいくつか扱う機会がありました。 このサイズのデータ​​ベースを標準的な方法で移行するのは (ホスティングとブラウザの制限のため) 難しいため、そのような問題 (大規模なデータベースの移行) の解決に役立ついくつかの作業方法を共有します。

Sypex Dumper 経由で大規模な MySQL データベースをエクスポート (ダウンロード)

そこで、より簡単なオプション、つまり既成のソリューションを使用して、目前の問題を解決する検討を始めましょう。

「Sypex Dumper」は、phpMyAdmin を使用せずにデータベースを操作できるようにする、PHP で書かれたソフトウェア製品です。 Sypex ダンパーの利点は次のとおりです。

  1. 多言語対応 (多くの言語をサポート)。
  2. このスクリプトには無料バージョンがあります (私たちの目的にはこれで十分です)。
  3. タスク完了の高速化。
  4. 大規模なデータベースを操作する。
  5. 便利で直感的なインターフェイス。
  6. 他にも多くの興味深い機能があります。

これは、大規模なデータベースをダウンロード (転送) するために使用します。

今後使用するために特定のサイトのデータベースをエクスポート (受信、ダウンロード) するには、次の手順を実行する必要があります。

1. 当社ウェブサイトから無料でご利用いただけます。

2. SXDあなたにとって都合の良い方法で。

3. 次にアドレスに移動します (どこ your_site.ru 入るには».

4. 開いたページ (認証が成功した場合) で、「」セクションを 1 回クリックします。 輸出» トップメニューにある。 ユーザーが複数のデータベースを利用できる場合は、エクスポート (ダウンロード) するデータベースをドロップダウン リストから選択します。 残りの設定は変更しないままにして、「」をクリックします。 実行する».


注意したい、データベース全体ではなく、必要に応じてテーブルの一部のみをエクスポートできるということです。

5. データベースの保存プロセスが完了したら (進行状況バーで確認できます)、適切なボタンをクリックして必要なデータベースをダウンロードできます。


さらに、エクスポートされたデータベースはすべて、途中で Web サイトに保存されます。 /sxd/バックアップ/。 データベースの保存に失敗した場合は、フォルダーが バックアップ書き込み権限は777です。

以上でデータベースのエクスポート(ダウンロード)は完了です。

Sypex Dumper を介した大規模な MySQL データベースのインポート (ダウンロード)

上記では、必要なデータベースを取得する方法を説明しましたが、今度はそれを別のプロジェクトに転送 (インポート) する必要があり、そのために次の操作を行います。

1. 当社ウェブサイトから無料でご利用いただけます。

2. アーカイブを解凍し、フォルダーを Web サイトにアップロードします SXDあなたにとって都合の良い方法で。

3. フォルダへ /sxd/バックアップ/以前に受信した (ダウンロードした) データベースをロードします。

4. 次にアドレスに移動します http://your_site.ru/sxd/index.php(どこ your_site.ru– Web サイトのドメイン)、その後、データ入力フォームが目の前に開きます。 その中で、必要なデータベースを管理する権限を持つユーザーのデータを指定し、「」をクリックします。 入るには».

5. 開いたページ (認証が成功した場合) で、「」セクションを 1 回クリックします。 輸入» トップメニューにある。 ユーザーが複数のデータベースを使用できる場合は、データをインポート (ロード) するデータベースをドロップダウン リストから選択します。 残りの設定は変更しないままにして、「」をクリックします。 実行する».


注意したいデータベース全体ではなく、必要に応じてテーブルの一部だけをインポートできること。

6. データベースのインポート (ロード) プロセスが完了すると (進行状況バーで確認できます)、タスクは完了したと見なされます。


SSH ターミナル経由で大規模な MySQL データベースをエクスポート (ダウンロード)

SSH は、システムまたはサーバーをリモートで (特別なコマンドを使用して) 管理できるようにするネットワーク プロトコルです。 Windows には、このプロトコルを操作するためのプログラムが多数あり、その中で最も人気のあるのは「PuTTY」です。

たとえば、一部のホスティング サイトでは、コントロール パネルにターミナルが組み込まれています。 あまり深くは考えずに、彼の例を使用してタイトルで説明した問題を考えてみましょう。 それは注目に値します以下で説明する操作は別の SSH クライアントで実行できることを確認してください。

1. ターミナルを起動します。 次のようになります。


2. サードパーティ プログラムを通じてサーバーに接続する場合は、適切なデータを入力してログインします (データは、ホスティング コントロール パネルまたはホスティング プロバイダーから取得できます)。

2番- これ:

Mysqldump -u ユーザー名 -p データベース > バックアップ.sql

エクスポート自体を直接指定します。ここで、

ユーザー名– データベースにアクセスできるユーザーのログイン。

データベース– エクスポートするデータベースの名前。

バックアップ.sql– データベースが保存されるファイルの名前と、 からの相対パス。 この設計では、データベースはホスティングのルートに保存されます。

4. 3番目のステップで入力"をキーボードで。 注記

サーバーが再び SSH 経由でコマンドを受け入れる準備が整うと、データベースのエクスポートが完了し、FTP またはホスティング ファイル マネージャー経由でダウンロードできることになります。

エクスポート (およびインポート) プロセスは SSH ではブロードキャストされません。データベースが非常に大きい場合は、20 分以上後にサーバーから応答を受け取る可能性があるため、しばらくお待ちください。

SSH ターミナル経由で大規模な MySQL データベースをインポート (ダウンロード)

SSH が何であるかについてはすでに説明しました。次に、以前にダウンロードしたデータベースを別のプロジェクトにインポートする方法を見てみましょう。

1. あなたの根元までホスティングしている場合は、以前にダウンロードしたデータベースを便利な方法でダウンロードします。

2. SSH 経由でホスティング/サーバーに接続します。

したがって、私たちは間違いなくホスティングのルートに行きます、そして 2番- これ:

したがって、現在のディレクトリのファイルとディレクトリの完全なリストが得られます。 以前にダウンロードしたデータベースがその中に含まれていることを確認しましょう。

4. すべてが正常で、ベースが所定の位置に配置されている場合は、最後のコマンドを入力します。

Mysql -u ユーザー名 -p データベース< backup.sql

ユーザー名– データベースにアクセスできるユーザーのログイン。

データベース– データをインポートするデータベースの名前。

バックアップ.sql– ダウンロードされるファイルの名前と からの相対パス。 この設計では、データベースはホスティング ルートからインポートされます。

5. コマンドを入力すると、指定したユーザーのパスワードを入力するように求められます。 4番目のステップで。 パスワードを入力して「」をクリックしてください 入力"をキーボードで。 注記 SSH 端末でのパスワードの入力は表示されません。つまり、パスワードを入力しても貼り付けても、その場所には常に空白が表示されます。

この後、サーバーが再び SSH 経由でコマンドを受け入れる準備が整うと、データベースのインポートが完了し、プロジェクトの作業を続行できることになります。

データベースを SQL ファイルにバックアップまたはエクスポートした場合は、phpMyAdmin を介してホスティング アカウントの MySQL データベースの 1 つにデータベースをインポートできます。

注記。 MySQL データベースには CREATE DATABASE 行があってはなりません。 そうしないと、インポートが失敗する可能性があります。

phpMyAdmin インターフェイスを使用すると、一度に 8 MB のデータをインポートできます。 より大きなファイルをインポートする必要がある場合は、ファイルを 8 MB のいくつかの部分に分割します。

注意! Web サイトをスムーズに実行し続けるために、マネージド WordPress ホスティング用のデータベースをインポートしている場合。

phpMyAdmin を使用した SQL ファイルの MySQL データベースへのインポート

この後、SQL ファイルが実行され、SQL ファイルで選択したデータベースが更新されます。 データベースの復元には数分かかる場合があります。

注記。エラー メッセージ「スクリプト タイムアウトが経過しました。インポートを終了したい場合は、同じファイルを再送信してください。そうすればインポートが再開されます。」というエラー メッセージが表示された場合は、すぐに同じファイルを選択してプロセスを再開できます。