0

我需要做的是制作某些表数据的sql备份文件(“生成插入语句”)。我想每月做一次。

示例选择语句:

SELECT * FROM table WHERE date >= "01-01-2012" AND date < "01-02-2012"

情况是我需要从远程 sql server 备份。看来,那时我不能使用mysqldump(?)

那么,我是否应该编写一个 PHP 脚本来生成这些语句?这似乎有点野蛮的解决方案;)

对不起,这件事看起来很基本,但我已经很困惑了。

顺便提一句。表部分是 InnoDB 部分是 MyISAM

4

1 回答 1

0

你问了很多问题...

如果远程机器是 unix,请编写一个像这样的小 bash 脚本:

#!/bin/bash

/usr/bin/mysqldump -h db_server -u user_name -ppassword --WHERE 'date >= "01-01-2012" AND date < "01-02-2012"' database_name table_name | gzip > output.sql.gz

注意事项:

  1. 密码在脚本中是硬编码的。使用权限较低的用户帐户。
  2. 您的日期范围也是硬编码的,但这很容易使其通用。
  3. '-p' 和密码之间没有空格。

对于 innodb,使用 --single-transaction。对于 myisam,我猜你会坚持使用 --lock-tables。

然后在 cron 作业中运行此脚本。

如果您无法连接,请检查您的防火墙和 mysql 用户权限。

而我的 0.02 美元……编写运行 shell 命令的 php 脚本真的很懒惰。为它们编写 shell 脚本。你会睡得更好。

祝你好运。

于 2012-09-19T00:26:03.620 回答