頑張らない!でも諦めない!必死にならずにええかげん

phpMyAdminでMySQLデータをサーバー上にエクスポートする

      2014/11/22

MySQLのデータをphpMyAdminを利用して、
レンタルサーバからエクスポート(Export)している際に、
エクスポートしたファイルが途中で切れてしまう場合があります。
直接ダウンロードせずに、サーバー上に一旦エクスポートすると、
最後までエクスポートが行われる場合があります。

はじめに

私はサイトをwordpressで運営しています。
レンタルサーバ上に設置して運営しているのですが、
ローカル環境ではない場合、データベースのエクスポートも、
コマンドからのダンプなどが利用できず、phpMyAdminで行うことになります。

このphpMyAdminによるエクスポートは、
大きなテーブルなどには向いていないなどという情報をよく目にします。
確かに、私も今回かなり苦労し、何度もエクスポートに失敗しました。

phpMyAdminによるエクスポートですが、
結局のところ、MySQLからのエクスポート処理と、
エクスポートファイルのダウンロードを分けて考えたほうが良さそうという結論に至りました。

サーバー上に保存するための設定

phpMyAdminでは通常ローカルに保存する方法と、ブラウザに表示する方法の
出力選択肢が用意されています。

このローカルに保存する方法では、MySQLからのエクスポート処理と、
ローカルへのダウンロードを同時に行うため、
長く時間がかかってしまうような大きなデータの転送ではエラーになり、
ダウンロードが中断されてしまう場合があります。

こうしたダウンロードの中断が発生しないように、
サーバー上にMySQLからのエクスポート処理のみを行うように設定することができます。

通常のエクスポート方法

phpMyAdminでは通常はローカルに保存する設定と、
画面上に表示する設定の2つの選択肢しか表示されていません。

01_phpMyAdminエクスポート方式選択

phpMyAdminエクスポート方式選択

出力をファイルに保存を選択した場合には、ファイル保存ダイアログが開きます。

02_出力ファイルに保存選択時

出力ファイルに保存選択時

出力をテキストで表示するを指定した場合にはブラウザ上に出力が表示されます。

03_出力をテキストで表示する選択時

出力をテキストで表示する選択時

参考までに、保存したファイルが途中で切れた場合には、
最後の行にコメントが出力されずにファイルが切れてしまいます。

04_出力のエラーと正常時

出力のエラーと正常時

設定の変更

phpMyAdminのフォルダ内にある[config.inc.php]ファイルを開きます。
ここではphpMyAdminのアプリケーションをサーバーにアップロードする際に利用した、
元のローカルファイルを編集しています。
(またはサーバー上のファイルをFTPでダウンロードして編集も可)

05_config.inc.phpの編集

config.inc.phpの編集

ファイルを開いたら、中ほどの以下の行を検索し、
保存先とアップロード先のディレクトリを指定します。

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

$cfg[‘UploadDir’] には、アップロードに利用するのディレクトリを指定します。
[./upload]などを指定すればよいでしょう。

$cfg[‘SaveDir’] には、今回の出力先に利用するディレクトリを指定します。
[./save]などを指定すればよいでしょう。

06_ディレクトリ変数値の編集

ディレクトリ変数値の編集

編集を行ったら、 FTPクライアントを利用して、
[config.inc.php]をアップロードしてサーバー上のファイルを更新します。

07_FTPアップロード

FTPアップロード

アップロード先と保存先に指定するディレクトリは、
phpMyAdminのディレクトリから見た、相対ディレクトリで指定します。
また保存先(save)ディレクトリのパーミッション(アクセス権)は、
700以上を設定する必要があります。

08_指定ディレクトリとの相対関係

指定ディレクトリとの相対関係

サーバー上にエクスポート

設定を終了しphpMyAdminからエクスポートを選択すると、
出力画面には「サーバー上のディレクトリ[場所]に保存する」が表示されるようになります。

チェックボックスをチェックし[実行する]をクリックするとサーバー上に出力されます。

保存先(save)ディレクトリのパーミッション設定に誤りがある場合には、
「このウェブサーバにはファイル[ファイル名]を保存する権限がありません」と
表示されエラーになります。
その際には、再度FTPクライアントで保存先(save)ディレクトリの
パーミッション(アクセス権)を確認してください。

09_サーバー上のディレクトリに保存の表示

サーバー上のディレクトリに保存の表示

エクスポートが正常に終了すると、エクスポートの完了メッセージが表示されます。
何らかのエラーが発生した場合には[Internal Server Error]が表示されます。

ただし、エラーが発生した場合でも、ファイル自体が正常に出力されている場合もありますので、
出力したファイルを開いて、途切れていないことを確認してください。

10_保存正常時とエラー時

保存正常時とエラー時

エクスポートファイルのFTPダウンロード

出力したファイルはFTPクライアントでダウンロードします。

11_保存ファイルの確認

保存ファイルの確認

サーバー側からクライアント側へドラックして転送を開始します。

12_FTPダウンロード

FTPダウンロード

転送が完了したら、ローカル側にもファイルが表示されます。

13_ローカル保存ファイルの確認

ローカル保存ファイルの確認

ファイルはエクスプローラなどからテキストエディタで開きます。

14_保存ファイルの最終行確認

保存ファイルの最終行確認

ファイルが正常に表示された場合にはエクスポートは完了です。
重要な情報などが保存されている場合もありますので、
サーバー側のエクスポートしたファイルは、
ローカルに保存したらすぐに削除するようにしましょう。

プロモーション(btm)

Google or AdMax Promotion (it)

総括

共用サーバなどでサーバーの設定が変更できないような場合でも、
phpMyAdminだけを利用して、大量のレコードが含まれているテーブルでも、
サーバー上に保存することで比較的安定して出力ができるようになります。

完全ではありませんが、困ったときには試してみるだけはあると思います。

なお、今回の件でphpMyAdminでエクスポートする際には、
ブラウザでエラーが表示されなくても、
出力したファイルは毎回開いて確認しなければ、
大切なデータが損失してしまう恐れがあることがわかりました。

データの消失が起こらないように、毎回しっかりと確認したいものです。

MySQLはOracle Inc.による著作物です。
MySQLはFree Software Foundation, Inc.によってGPL Licenseでライセンスされています。

phpMyAdminはphpMyAdmin devel teamによる著作物です。
phpMyAdminはGNU General Public License, version 2.によってライセンスされています。

*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - MySQL, PHP, phpMyAdmin , ,

  関連記事

eye_phpmyadmin
phpMyAdminを利用したMySQLデータのエクスポート

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_php
PHP.iniに設定する設定をhttpd.confや.htaccessに対して行うメリット

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_apache_fcgi
(lounge mod_fcgid on 2.4.6)windowsでCGIをFastCGIで実行するように設定する

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_apache_fcgi
(mod_fcgid on 2.2.x)windowsでCGIをFastCGIで実行するように設定する

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_phpmyadmin
phpMyAdminが[mysql拡張がありません。PHP の設定をチェックしてみてください。]という場合

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_eekagen
PHPの過去バージョンがダウンロードできるアーカイブ先(メモ)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_phpmyadmin
レンタルサーバ環境へのphpMyAdmin設置

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_php
include_once(include) は戻り値が返されるの!?

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_apache_fcgi
ローカル環境のPHPをCGI実行させる方法をwindowsで試す

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_local_php
ローカル環境へのPHP設置

Google or AdMax Promotion(it) 禁断の機能がau公式 …