2012-01-30 20 views
0

MySqlのコマンドBACKUPRESTOREを使用して、必要に応じてデータベースとロールバックをバックアップできることを理解します。MySqlデータベースのバックアップ/ロールバックの作成

私の質問は、私はそれをこのように実行することができるだろう、次のとおりです。

sql="BACKUP my_db TO DISK my_backup_folder WITH FORMAT #"; 

if ($stmt = $this->connect->prepare($sql)) {  
$stmt->execute(); 
$stmt->close(); 
} else { 
    $error    = true; 
    $message['error'] = true; 
    $message['message'] = CANNOT_PREPARE_DATABASE_CONNECTION_MESSAGE; 
    return json_encode($message); 
} 

と同じ方法で作られた復元:

sql="RESTORE DATABASE my_db FROM DISK my_backup_folder WITH FILE #"; 

if ($stmt = $this->connect->prepare($sql)) {  
$stmt->execute(); 
$stmt->close(); 
} else { 
    $error    = true; 
    $message['error'] = true; 
    $message['message'] = CANNOT_PREPARE_DATABASE_CONNECTION_MESSAGE; 
    return json_encode($message); 
} 

そして#は何の略いずれの場合にも、それは.bakですか?そこにあるもののほかに何か追加すべきものがありますか?

+1

'BACKUP'と' RESTORE'コマンドはまったく導入されていますか? – Mchl

+0

@Mchl - どういう意味ですか? – Roland

+0

私の答えと@ Mchlのコメントによれば、これは廃止されたコマンドであり、実際にはMySQL用の実用的なバックアップシステムにアプローチする最良の方法ではありません。 – quickshiftin

答えて

1

コマンドラインのクイックピークは、非推奨のコマンドを示しています。

mysql> help backup; Name: 'BACKUP TABLE' Description: Syntax: BACKUP TABLE tbl_name [, tbl_name] ... TO '/path/to/backup/directory' 

*Note*: This statement is deprecated and is removed in MySQL 5.5. As an alternative, mysqldump or mysqlhotcopy can be used instead. 

廃止予定のコマンドを使用する方法についてのアドバイスは、誤った名前です。 mysqldumpにピークを迎える。 LVM snapshotsなどの他のオプションもあります。

+0

OK。私はmysqldumpを使用しようとしましたが、私のローカルサーバーでは動作しません。理由を見つけることができませんでした。しかし、今私は別のソリューションを試している、私はDBを介してループし、すべての既存のテーブルとそれらの内部のものを取得しています。そして、私は 'fopen'でファイルを作っています。私は' CREATE TABLE IF NOT EXISTS'などのSQLコマンドを使ってデータを書きます。とにかく、私が尋ねたこの方法もうまくいかなかった。 – Roland

+0

私の意見ではありますが、mysqldumpが動作しない理由を理解することをおすすめします。これは標準的なツールであり、この時点で書き直しているようです。私はあなたが自分のものと置き換えることはできませんmysqldumpを稼ぐために費やしている時間を賭ける。しかし、誰が知っている、時には新しいソリューションにメリットがあります。 – quickshiftin

+0

確かに。さて、私はWindows環境でテストしているからだと言っている人もいますが、すべてのプロセスを動作させるXAAMPがあります。何人かは私が書くことにアクセスすることができないと言うが、作品を書く他の手続きのためにある。だから私はそれが動作していない理由を把握できませんでした。そして、私はそれがうまくいくと知っているものと仕事をすることに決めました。 – Roland

関連する問題