2012-03-30 8 views
5

phpMyAdminを使用して単一のデータベースのエクスポートを自動化することは可能ですか?phpMyAdminを使用してmySQLデータベースのエクスポートを自動化するには

phpのような外部スクリプトから.sqlファイルを作成しようとすると、生成される.sqlファイルはきれいに見えますが、インポートするとアプリケーションに問題が発生します。

エクスポートを使用してphpMyAdminを使用して同様の.sqlファイルを作成すると、結果として得られる.sqlファイルがアプリケーションに問題を引き起こすことなくインポートされます。

アプリケーションはmoodle 2.2、MySQLバージョン5.5、phpMyAdminバージョン3.4.10です。

+1

私はphpMyAdminでチェックしませんでしたが、おそらくもっと良い解決策はcronの仕事になります。 – Dudeist

+0

私は問題のある外部スクリプトを呼び出すためにcronを使用しています。そのため、phpMyAdminから直接スクリプトを作成したいのです。 – jamesTheProgrammer

+0

MySQLBackupFTP(http://mysqlbackupftp.com/)をphpMyAdminに接続し、データベースを自動的にバックアップするスケジュールを設定することができます。 –

答えて

4

データベースのエクスポートを実行するスクリプトをmysqldumpで実行し、そのスクリプトを実行するためのクローンジョブを作成することをお勧めします。

+0

私はWindows 2003サーバーを使用しているので、cronスクリプトavailはありません。自動化する。私は、あなたがコマンドラインから述べたように、mysqldumpを使うことができたcron、ATのWindows版を見つけました。 – jamesTheProgrammer

+3

WindowsのCronjobsはScheduled Taksと呼ばれています。 – edelgado

+0

これは、DBサーバーのIPがlocalhostまたはいくつかの[RFC 1918](http://www.faqs.org/rfcs/rfc1918.html)アドレスであり、唯一の他のアクセスFTPです。その後、私たちのデータベースへの唯一のアクセスは、インターネットからDBにアクセスすることができないため、phpMyAdminまたは自国のPHPスクリプトを介してのみです。 –

2

あなたはmysqldumpを使用してデータベースに直接接続できない場合は、このシェルスクリプトを使用することができますが(カール必要):

#!/bin/sh 
ADMIN_URL='https://phpmyadmin.example.com' 
USERNAME='my_username' 
PASSWORD='my_password' 
COOKIEJAR='/tmp/my_cookiejar' 
token=`curl -s -o - -d "pma_username=$USERNAME" -d "pma_password=$PASSWORD" -c "$COOKIEJAR" "$ADMIN_URL/" | grep -o -m 1 "token=.*'" | sed "s/'//"` 
curl -o - -b "$COOKIEJAR" -d what=sql -d export_type=server -d sql_structure_or_data=structure_and_data -d "$token" "$ADMIN_URL/export.php" 
rm "$COOKIEJAR" 

を次に、あなたのcrontabに入れて:

22  3 * * * someuser /path/to/script.sh > /path/to/backup/db.sql 

へ毎晩3:22にバックアップを取る。

phpMyAdmin 3.4.10.1でのみテストされ、他の(メジャー)バージョンでは動作しない可能性があります。

+0

V4にはフォームのトークンがあるように見えるので、これはうまくいくとは思わない。 – Nick

+0

これについての最新情報は? –

0

使用このスクリプト: のphpMyAdminのWebインタフェースを介してSQLのバックアップのダウンロードを自動化する https://github.com/qubitstream/phpmyadmin_sql_backup

phpmyadmin_sql_backup.py

A Pythonの3スクリプト。

ウェブホスティングプロバイダが にコンソール(mysqldump用)にアクセスすることを許可していないのに(ブラウザを手動で使用する必要なしに)データベースの バックアップを自動化したい場合に便利です。

これは、LinuxおよびWindows上のPython 3.4+でテストされていると phpMyAdminは4.3.6、4.5.4.1および4.7.0-devの

注:phpMyAdminののWebインターフェイスは、将来変更と ありこのスクリプトを壊してください。この問題が発生した場合は、バグレポート(お客様の phpMyAdminのバージョンを含む)を提出してください。

例:

phpmyadmin_sql_backup.py "http://www.example.com/phpmyadmin/" your_user your_password 

他のオプションを利用できます。

関連する問題