人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPからMySQLに登録されているテーブルをバックアップしたいと思います。

それで以下のようなコードを書いたのですが、実行されません。

$sql = "mysqldump table_name > 'c:\backup.sql' -u root -p aaaa";
$res = mysql_query($sql,$conn);

※「table_name」は、バックアップしたいテーブル名です。

コマンドブックを見ると、ユーザ名やパスワードも入れるので、
PHPからは実行できないのかな?っと思っているのですが、もし可能ならご指摘、修正お願いします。

【テスト環境】
php5.2.0
MySQL4.0.26
WindowsXP上のApache2.0.58でテスト

●質問者: kt26
●カテゴリ:ウェブ制作
✍キーワード:2.0 MySQL PHP root SQL
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● b-wind
●23ポイント
$sql = "mysqldump table_name > 'c:\backup.sql' -u root -p"; aaaa";

それ SQL じゃなくてコマンドだから。MySQL に渡しても何の意味もない。


やるなら

$command = "mysqldump table_name > 'c:\backup.sql' -u root -p"; 
system($command);

PHP: system - Manual

とか。

◎質問者からの返答

回答ありがとうございます。SQLファイルは作成できるようになったのですが、中身が空のファイルが出来るだけです。

ちょっと使い方がよくわからないので、マニュアルを頼りに勉強してみます。


2 ● thrillseeker
●23ポイント

mysqldump はコマンドラインからバックアップを行う為の PHP とは

独立した単体のプログラムですので、敢えてやるとしたら

$command = "mysqldump table_name > 'c:\backup.sql' -u root -p aaaa";
system("$command");

となると思いますが、セキュリティ上かなり問題のある方法です。

PHP でバックアップを実現するのが主目的で PHP の学習が目的では

無いのなら、phpMyAdmin を導入するのが簡単ですよ。

http://wiz.syscon.co.jp/phpMyAdminSetup.html

http://www.ddsystems.info/ex/ex_cgi/220401.html

◎質問者からの返答

phpMyAdminはずっと利用しています。アドバイスありがとうございました。


3 ● KUROX
●22ポイント

■phpMyBackupProというオープンソースのプログラム

http://imai.studiobrain.net/2006/12/13/87

こいうのを使ってみてはどうでしょうか?

◎質問者からの返答

それを使っていて前にはてなでも質問したのですが、なぜかcronでの処理が利きません。バックアップ用のファイルに直接アクセスしたら、バックアップファイルは作られるのですが‥。


なので、簡易的に出来る方法はないかと思い、質問した次第です。


4 ● huruyosi
●22ポイント

1.の方法でダンプファイルの中身が空になるは-pオプションでプロンプトを表示してパスワードの入力を促しているものの、system関数でmysqldumpを実行しているためにパスワード入力が行えていません。

そこで、


$command = "mysqldump -u root --password=rootのパスワード データベース名 table_name > 'c:\backup.sql'"; 
system($command);

としては如何でしょうか

http://dev.mysql.com/doc/refman/5.1/ja/mysqldump.html

◎質問者からの返答

$command="mysqldump -u root --password=aaaa test_tb table_name > 'c:\backup.sql' ";


と言うようにしてみたのですが、空のファイルのままでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ