Создать резервную копию базы данных MySql / откат - PullRequest
0 голосов
/ 30 января 2012

Я понимаю, что могу использовать команду MySql BACKUP и RESTORE для резервного копирования базы данных и отката при необходимости.

Мой вопрос, смогу ли я выполнить это так:

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 Ответ

1 голос
/ 01 февраля 2012

Быстрый пик в командной строке показывает, что это устаревшие команды.

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 и т. Д.

...