• ベストアンサー

CGI + Mysqlによるバックアップ

Perl5.8*とDBIモジュールでMysql5をつかってWebアプリを作成しているのですが、不明なことがありましてどなたかご教授いただけましたら幸いです。 phpMyadminは各データーベースレベルやテーブルレベルでSQL文をエクスポートができますが、Perlで上記のようにひとつのデータベースを一括でエクスポートできますでしょうか? 最終的には実現したいことは定期的にcronなどで毎日バックアップをとりたいのです。 よろしくお願いいたします。

  • CGI
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • uwi
  • ベストアンサー率74% (55/74)
回答No.2

CPANを検索したらこんなのがありました。どうでしょうか? MySQL::Backup http://search.cpan.org/~dmitry/MySQL-Backup-0.04/lib/MySQL/Backup.pm Perlで何かしたいと思ったらまずはCPANを探してみるのがいいかもしれません。

参考URL:
http://search.cpan.org/~dmitry/MySQL-Backup-0.04/lib/MySQL/Backup.pm
bakusui
質問者

お礼

ありがとうございます。 ちょっとこれで試してみます。

その他の回答 (1)

回答No.1

cronでバックアップ取るだけならperlもphpMyadminも必要ないのでは? 普通に mysqldump -u root -p[password] --all-databases > hogehoge.sql 等というコマンドをcronで定期的に起動すれば良いと思いますが。 ただしこのままだと1世代しか取れないので、perlなりシェルなりでスクリプトを作成して、日付付きのファイルにするのが良いと思います。

bakusui
質問者

お礼

さっそくの回答ありがとうございます。 そのようにするのもありなんですが、今回はどうしてもCGIからバックアップを取りたいのです。 よろしくお願いいたします。

関連するQ&A

  • MySQLのデータベースのバックアップを取り込む方法について。

    MySQLのデータベースのバックアップをphpMyAdminのエクスポートで取っていました。 そのバックアップを新しいデータベースに取り込みたいのですが、うまく行きません。 すでに、同じ名前で同じ構造の新しいデータベースは作成済みで、新しいデータも生じているのですが、phpMyAdminでバックアップしたファイルをインポートすると、古いデータは取り込めるのですが、新しいデータが消えてしまいます。 バックアップしたデータを新しいデータに追加するには、どうしたらいいでしょうか?

    • ベストアンサー
    • MySQL
  • mysqlをバックアップして違うサーバーのmysqlに移動する方法

    独自ドメインでmtを使用していて、ステップサーバーからxサーバーに移行しました。 データーベースを mysql にしていたんですが、データーの移動の仕方がわかりません。 ステップサーバーで、phpMyAdminにログインしてデーターベースをファイルに保存「エクスポート」 これでバックアップできたということであってますか? xサーバーでphpMyAdminにログインしてみましたが「インポート」だけありません。 どうしたら、mysqlから違うサーバーのmysqlにデーター移動できるんでしょうか? xサーバーに移行してデーターベースが変わったのでmtが初期状態でどうすればいいのかわかりません。 どうか教えてください。

    • ベストアンサー
    • MySQL
  • MySQLにあるDBテーブルをバックアップ(エクスポート)する方法

    MySQLにあるDBテーブルをバックアップ(エクスポート)を PHPで行いたいのですが、PHPのMySQL関数には見当たりません。 PerlではなくPHPで行いたいので、どなたかアドバイス下さい。 宜しくお願いします。

    • 締切済み
    • PHP
  • perlのDBIモジュールからmysqlへデータを送ったら文字化けします。

    こんにちは。 タイトル通り、perlのDBIモジュールからデータベース(mysql)にデータを渡してみたのですが(INSERT INTOです。)phpmyadminというDB管理ツールでテーブルの内容を見てみると、文字化けしてました。 フォームより受け取った値(文字列です。もっというと名前)をCGIでデータベースへ追加するといったことをしています。ソースは以下のとうりです。 require 'cgi-lib.pl'; my %formin; &ReadParse(\%formin); $sei=$formin{'sei'}; $mei=$formin{'mei'}; あとはこの変数をDBIでデータベースに渡すだけなので略します。 データベースへデータを渡したとき、文字化けさせないためには、どうしたらいいのでしょうか? 初歩的なことかもしれませんが、どうかお力を貸してください。お願いします。

    • ベストアンサー
    • MySQL
  • PerlでMysqlのデータベース、テーブル作成

    はじめまして。 perlからMysqlのデータベースやテーブルを作成したいと思っております。 webを検索してみたのですが、どれもデータベースに接続してから、データの操作(挿入や削除など)をするものばかりで、データベースの作成などが見つかりません。 perlからデータベースの作成などは出来ないのでしょうか?また、出来るのでしたら、どのように書けばいいのでしょうか? 以下は、データベースに接続する場合です。 use DBI; $database="testdata"; $hostname="localhost"; $user = "aaa"; $password = "test"; $dsn="DBI:mysql:database=$database:host=$hostname"; $dbh = DBI->connect($dsn,$user,$password)||die $DBI::error; 宜しくお願いします。

  • MySQL データベースのバックアップ

    MySQLのデータベースを自動でバックアップできますか?テーブル単位でのバックアップも自動でできますか? お願いします。

  • CGIでmysqlからデータ取得できない

    MYSQLとDBIを利用してデータベースと連携したCGIを作成しようとしています。 CGIからあるテーブルのデータをselectしたときに、取得データの件数は取得できるのに、肝心のデータそのものがnullになってしまいます。 件数が取れるので、データベースへのアクセスは問題ないのかなと思うのですが・・・。 DBIのインストールに問題があるのでしょうか? 何か心当たりのある方がいらっしゃればアドバイスいただけるとうれしいです。 よろしくお願いします。

  • PHPからMySQLのバックアップをとるには?

    レンタルサーバのLinux+PHP4.2.1+MySQL3.23.42の環境で行っております。 HTML(PHP)フォームから、「バックアップ」ボタンが押されたときに、 MySQLのバックアップをとる(mysqldump)するプログラムを作りたいのですが、 mysqldumpコマンドは、SQLとしてクエリ送信できるのでしょうか? 例えば、 $strSQL = "mysqldump -u **** -p**** DB名 テーブル名 > dumptest.bak"; mysql_db_query($strSQL); のような感じでは、成功しませんでした。 mysql("DB名","mysqldump -u **** -p**** DB名 テーブル名 > dumptest.bak"; さらに、このような方法もあるみたいですが、 エラーも起こらないしdumpもされませんでした。 phpMyAdminなどは、どうやって実行しているんでしょうね。。。 知っている方がいましたら、是非ご教授くださいませ。

    • ベストアンサー
    • PHP
  • MySQL の設定で行き詰っております・・・。

    こんにちは。 ある海外のフリーソフトをサーバーにインストールしようとして、行き詰っております。宜しくお願い致します。 そのソフトは、MySQLのデータベースを必要とします。 私は今までMySQLのデータベースを使った事はあるのですが、データベースさえ作ればその他は自動的にやってくれるものばかりだったので、今回手動(?)で分からなくなっております。インストールの説明文に次のようにあります。[5]までは済ませています。 ----------------------------------------------- [5] Create the mysql database (usually tinylink) with mysqladmin. mysqladmin -u<your_mysql_user> -p<your_mysql_pass> create tinylink (tinylink というのはソフトの名前なので、データベースの名前も通常その名前だという説明だと思います。mysql admin を使ってここまではできました。) [6] Create the mysql tables. You have 2 options : 1) mysql -u<your_mysql_user> -p<your_mysql_pass> tinylink < db_structure.sql 2) use phpMyAdmin to run the SQL file 'sql/db_structure.sql' ここがわかりません。(1)でも(2)でも良い、という事なのですが、(1)は私には意味が不明です。(特に tinylink < db_structure.sql の部分が不明) (2)はphpMyadminを使って、テーブルの作成に次のファイル('sql/db_structure.sql')を実行するように設定してね、という意味だと思うのですが、phpMyAdminのどの部分でファイルを実行するように設定できるのかが不明です。 "db_structure.sql'"ファイル自体はすでにアップロードしてあるのですが・・・。 なにぶん分かっていない事が多いのでちんぷんかんぷんな事を言っているかも分かりませんが、どうぞお手柔らかに宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • mysql_select_db()関数に関して・・・。MySQLでテーブルの作成ができません。

    こんにちは、さくらインターネットのレンタルサーバでMySQLとphpを連動させたサイトを作っているのですが、初歩的なことでつまずいてしまい困っています。 まず、フォームで入力させたデータをPOSTで受け取り、その受け取ったデータをテーブル名として、データベース上にテーブルをつくりたいのですが、エラー文が表示されるだけでできません。 データベース自体への接続はできているようなのですが、phpMyAdminで見ても全くできていません。SQL文をphpMyAdminで実行するときちんと正常にテーブルができますので、そもそもデータベースが使用できないとか、もしくはSQL文の間違いでもなさそうです。 $t1 = $_POST['test1']; $t2 = $_POST['test2']; echo"{$t1}を受け取りました<br>"; $link = mysql_connect('mysql**.db.sakura.ne.jp', 'ユーザー名', 'パスワード'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('接続に成功しました。<br>'); //1.さくらインターネット内にあるデータベースの選択 $db_name = "自分のデータベース名"; $selectDB = mysql_select_db($db_name,$link) or die("接続できません。"); //2.データベース内にテーブルを作成。 echo"{$t1}がテーブル名になります。<br>"; //3.テーブル作成用SQL文 $str_sql = "CREATE TABLE {$t1}" . "(" . "{$t2} INT(7) NOT NULL," . ");"; //4.上のSQL文を実行してテーブルを作る。 mysql_query($str_sql,$selectDB); echo"データベース内にテーブル「{$t1}」を作成しました。<br>"; //データベースへの接続を切断 $close_flag = mysql_close($link); if ($close_flag){ print('切断しました。<br>'); } 実行結果:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resourceとなってテーブルは作成されず。 自分でも調べて見たところ、mysql_connect()での接続はちゃんとできているようなのですが、その次のmysql_select_db()関数がうまく働いていないようです。 つまりデータベースの選択ができていないので当然エラーとなるようです。 もう何日も悩んでいます。わかる方がいましたらどうぞよろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう