我知道我可以使用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
?除了那里的内容之外,还有什么我应该补充的吗?
答案 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等。