Webサイトを手動で移行する場合、または単に特定のSQLファイルをデータベースにインポートする必要がある場合、この記事では、mySQLに複数のSQLファイルをインポートする方法を説明します。グラフィカルインターフェースとMySQLコマンドラインの両方を使用します。
まず、データベースをライブWebサイトにインポートしないことを強くお勧めします。 SQLファイルをインポートする前に、Webサーバーを停止し、データベースのバックアップを作成してください。
phpMyAdminを使用してデータベースをインポートする
ホストがすでにphpMyAdminをサーバーにインストールしていると想定しています。 VPSを実行していて、phpMyAdminがインストールされていない場合は、別の記事でLinuxにphpMyAdminをインストールする方法について詳しく説明します。
ほとんどのホストは、厳しいファイルアップロード制限を課し、最大実行時間を課します。サーバーのファイルアップロード制限が非常に低く(2MB)、データベースファイルが多くて大きい場合、エクスポートプロセスは常に失敗します。一方、phpMyAdminは、中断したところからインポートを再開できるほどインテリジェントです。したがって、最大実行制限に達した場合は、ファイルを再アップロードすると、phpMyAdminは中断したところからインポートを再開します。ただし、cPanelを使用するか、php.iniを手動で変更して、制限を増やすことをお勧めします。
VPSでのPHPファイルのアップロードサイズを増やす
PHPの最大アップロード制限を増やすには、php.iniを開き、次の行を編集します–
; https://php.net/cgi.check-shebang-line ;cgi.check_shebang_line=1 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; https://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; https://php.net/upload-tmp-dir ;upload_tmp_dir = ; Maximum allowed size for uploaded files. ; https://php.net/upload-max-filesize upload_max_filesize = 2M
アップロードファイルの最大サイズは、デフォルトで2MBに設定されています。必要なファイルサイズに変更してください。 post_max_size
まで下にスクロールします 。 post_max_size
を増やします デフォルトで8MBに設定されている場合は、必要なサイズになります。
一番下までスクロールして、max_execution_time
を探します 。デフォルトのmax_execution_time
30に設定されています 、これは大きなデータベースファイルをインポートするには短すぎます。インポートプロセスの1つで、max_execution_time
を設定する必要がありました 3600秒、または1時間に。インポートのサイズに基づいて、この制限を増やします。
cPanelでのPHPファイルのアップロードサイズを増やす
cPanelは、ほとんどのホスティングプロバイダーで使用されている人気のあるコントロールパネルです。 cPanelを使用すると、PHPのupload_max_filesize
を簡単に変更できます。 、post_max_size
、およびmax_execution_time
。
cPanelアカウントにログインし、以下の手順に従ってPHP設定を変更します–
cPanelダッシュボードからMultiPHPINIEditorをクリックします。
phpMyAdminがホストされているドメイン名を選択するか、ホームディレクトリを選択してすべてのドメインのPHP設定を変更します。これで、すべてのPHP設定が表示されます。 max_execution_time
を変更します 〜3600(1時間)、memory_limit
512MBまで、upload_max_filesize
およびpost_max_size
お好みの値に。
設定を変更したら、[適用]をクリックします。これで、phpMyAdminは複数のSQLファイルをインポートする準備が整いました。
DirectAdminでのPHPファイルのアップロードサイズを増やす
DirectAdminは、もう1つの人気のあるホスティングマネージャーです。 DirectAdminは、PHP設定を変更するためのより簡単な方法も提供します。ダッシュボードから、PHP設定をクリックします 。
[追加]ボタンをクリックしてfile_uploadsを選択し、その値を[オン]に変更します。もう1つの設定を追加し、max_execution_time
を選択します 値を1800または3600に設定します(インポートサイズによって異なります)。より大きなSQLファイルの場合、最大1時間またはそれ以上かかる場合があります。同様に、post_max_size
を変更します 、upload_max_filesize
、およびmax_memory
設定。
別のウェブホスティングパネルを使用している場合は、その設定を確認するか、サポートに連絡してサーバーのPHP設定を変更することをお勧めします。
次に、データベースのインポートプロセスを開始します。 Webブラウザーで、phpMyAdminを起動し、[インポート]に移動します。 1つのファイルを選択して、[実行]をクリックします。インポートするSQLファイルに基づいて設定を変更できます。ほとんどの場合、デフォルト設定で十分です。
ただし、インポートされるのは1つのファイルのみです。複数のSQLファイルをインポートするには、すべてのSQLファイルの.zipを作成し、zipの名前をfilename.[format].[zip]
の形式に変更します。 。例:wordpress.sql.zip
。
ファイルの数とサイズによっては、インポートプロセスに時間がかかる場合があります。プロセスが終了すると、インポートされたデータはデータベースの下に表示されます。 。
MySQLコマンドラインを使用してデータベースをインポートする
警告既存のデータベースに新しいデータファイルを移行または追加する前に、既存のデータベースをバックアップすることを強くお勧めします。
プロセスを簡素化および高速化したい場合は、mysqlコマンドラインを使用してデータベースファイルをインポートすることをお勧めします。複雑に見えるかもしれませんが、そうではありません。 PHP設定を変更したら、必要なのは1つのコマンドでそのトリックを実行することだけです。
古いデータベースを削除して新しいSQLファイルをインポートする
警告次のコマンドは、既存のすべてのデータを新しいデータに置き換えます。既存のデータベースにデータをインポートする場合は、このコマンドを使用しないでください。ただし、古いデータベースを新しいサーバーに移行する場合は使用しないでください。
すべての.sqlファイルをサーバーに転送します。サーバーにSSHで接続し、SQLファイルが保存されているディレクトリにcdして、次のコマンドを使用してすべてのSQLファイルをインポートします。
sudo cat *.sql | mysql -u root -p database_name
database_nameをサーバー上の実際のデータベース名に置き換えます。
古いデータベースを保持し、新しいSQLファイルをインポートする
新しいSQLファイルは、以下のコマンドを使用してインポートされます。データベースに一致するキーがある場合は、それらをスキップして、現在のデータベースに存在しないデータのみをインポートします。
sudo cat *.sql|sed 's/^INSERT/INSERT IGNORE/'|mysql -u root -p database_name
結論
これですべてです。データベースの移行はリスクの高い取り組みです。インポートプロセス全体でサーバー障害が発生する可能性があります。ただし、完全なデータベースバックアップがある場合は、安全です。データベースを本番サーバーに移行する前に、クローンサーバーまたはステージングサーバーを作成し、そのサーバーでプロセスを実行することをお勧めします。
上記の手順で問題が発生した場合は、この記事の下のコメントセクションでお知らせください。または、Discordサーバーに参加してください。