phpMyAdminでMySQLデータをサーバー上にエクスポートする
2014/11/22
MySQLのデータをphpMyAdminを利用して、
レンタルサーバからエクスポート(Export)している際に、
エクスポートしたファイルが途中で切れてしまう場合があります。
直接ダウンロードせずに、サーバー上に一旦エクスポートすると、
最後までエクスポートが行われる場合があります。
はじめに
私はサイトをwordpressで運営しています。
レンタルサーバ上に設置して運営しているのですが、
ローカル環境ではない場合、データベースのエクスポートも、
コマンドからのダンプなどが利用できず、phpMyAdminで行うことになります。
このphpMyAdminによるエクスポートは、
大きなテーブルなどには向いていないなどという情報をよく目にします。
確かに、私も今回かなり苦労し、何度もエクスポートに失敗しました。
phpMyAdminによるエクスポートですが、
結局のところ、MySQLからのエクスポート処理と、
エクスポートファイルのダウンロードを分けて考えたほうが良さそうという結論に至りました。
サーバー上に保存するための設定
phpMyAdminでは通常ローカルに保存する方法と、ブラウザに表示する方法の
出力選択肢が用意されています。
このローカルに保存する方法では、MySQLからのエクスポート処理と、
ローカルへのダウンロードを同時に行うため、
長く時間がかかってしまうような大きなデータの転送ではエラーになり、
ダウンロードが中断されてしまう場合があります。
こうしたダウンロードの中断が発生しないように、
サーバー上にMySQLからのエクスポート処理のみを行うように設定することができます。
通常のエクスポート方法
phpMyAdminでは通常はローカルに保存する設定と、
画面上に表示する設定の2つの選択肢しか表示されていません。
出力をファイルに保存を選択した場合には、ファイル保存ダイアログが開きます。
出力をテキストで表示するを指定した場合にはブラウザ上に出力が表示されます。
参考までに、保存したファイルが途中で切れた場合には、
最後の行にコメントが出力されずにファイルが切れてしまいます。
設定の変更
phpMyAdminのフォルダ内にある[config.inc.php]ファイルを開きます。
ここではphpMyAdminのアプリケーションをサーバーにアップロードする際に利用した、
元のローカルファイルを編集しています。
(またはサーバー上のファイルをFTPでダウンロードして編集も可)
ファイルを開いたら、中ほどの以下の行を検索し、
保存先とアップロード先のディレクトリを指定します。
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg[‘UploadDir’] には、アップロードに利用するのディレクトリを指定します。
[./upload]などを指定すればよいでしょう。
$cfg[‘SaveDir’] には、今回の出力先に利用するディレクトリを指定します。
[./save]などを指定すればよいでしょう。
1 2 |
$cfg['UploadDir'] = './upload'; $cfg['SaveDir'] = './save'; |
編集を行ったら、 FTPクライアントを利用して、
[config.inc.php]をアップロードしてサーバー上のファイルを更新します。
アップロード先と保存先に指定するディレクトリは、
phpMyAdminのディレクトリから見た、相対ディレクトリで指定します。
また保存先(save)ディレクトリのパーミッション(アクセス権)は、
700以上を設定する必要があります。
サーバー上にエクスポート
設定を終了しphpMyAdminからエクスポートを選択すると、
出力画面には「サーバー上のディレクトリ[場所]に保存する」が表示されるようになります。
チェックボックスをチェックし[実行する]をクリックするとサーバー上に出力されます。
保存先(save)ディレクトリのパーミッション設定に誤りがある場合には、
「このウェブサーバにはファイル[ファイル名]を保存する権限がありません」と
表示されエラーになります。
その際には、再度FTPクライアントで保存先(save)ディレクトリの
パーミッション(アクセス権)を確認してください。
エクスポートが正常に終了すると、エクスポートの完了メッセージが表示されます。
何らかのエラーが発生した場合には[Internal Server Error]が表示されます。
ただし、エラーが発生した場合でも、ファイル自体が正常に出力されている場合もありますので、
出力したファイルを開いて、途切れていないことを確認してください。
エクスポートファイルのFTPダウンロード
出力したファイルはFTPクライアントでダウンロードします。
サーバー側からクライアント側へドラックして転送を開始します。
転送が完了したら、ローカル側にもファイルが表示されます。
ファイルはエクスプローラなどからテキストエディタで開きます。
ファイルが正常に表示された場合にはエクスポートは完了です。
重要な情報などが保存されている場合もありますので、
サーバー側のエクスポートしたファイルは、
ローカルに保存したらすぐに削除するようにしましょう。
総括
共用サーバなどでサーバーの設定が変更できないような場合でも、
phpMyAdminだけを利用して、大量のレコードが含まれているテーブルでも、
サーバー上に保存することで比較的安定して出力ができるようになります。
完全ではありませんが、困ったときには試してみるだけはあると思います。
なお、今回の件でphpMyAdminでエクスポートする際には、
ブラウザでエラーが表示されなくても、
出力したファイルは毎回開いて確認しなければ、
大切なデータが損失してしまう恐れがあることがわかりました。
データの消失が起こらないように、毎回しっかりと確認したいものです。
MySQLはOracle Inc.による著作物です。
MySQLはFree Software Foundation, Inc.によってGPL Licenseでライセンスされています。
phpMyAdminはphpMyAdmin devel teamによる著作物です。
phpMyAdminはGNU General Public License, version 2.によってライセンスされています。
関連記事
-
phpMyAdminを利用したMySQLデータのエクスポート
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
PHP.iniに設定する設定をhttpd.confや.htaccessに対して行うメリット
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(lounge mod_fcgid on 2.4.6)windowsでCGIをFastCGIで実行するように設定する
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(mod_fcgid on 2.2.x)windowsでCGIをFastCGIで実行するように設定する
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
phpMyAdminが[mysql拡張がありません。PHP の設定をチェックしてみてください。]という場合
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
PHPの過去バージョンがダウンロードできるアーカイブ先(メモ)
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
レンタルサーバ環境へのphpMyAdmin設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
include_once(include) は戻り値が返されるの!?
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
ローカル環境のPHPをCGI実行させる方法をwindowsで試す
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
ローカル環境へのPHP設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …