创建MySql数据库备份/回滚

时间:2012-01-30 07:50:04

标签: php mysql backup restore

我知道我可以使用MySql的命令BACKUPRESTORE备份数据库并在需要时回滚。

我的问题是,我能否以这种方式执行:

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 个答案:

答案 0 :(得分: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等。