GNU/Linux >> Linux の 問題 >  >> Linux

MySQLに複数のSQLファイルをインポートする

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サーバーに参加してください。


Linux
  1. MySQL、PHP、Apacheの設定ファイルを見つける方法

  2. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  3. Dd:複数の入力ファイル?

  1. ファイル内の複数の文字列を見つける方法は??

  2. PHPをHTMLファイルで解析する方法は?

  3. PHP と MySQL の基礎:データベースとテーブル

  1. Linuxで複数のファイルを圧縮する方法

  2. dd イメージを複数のファイルに分割する

  3. 複数のリモート ファイルを追跡する