【问题标题】:MySQL- Is it possible to backup mySQL database within a period of time? [closed]MySQL-是否可以在一段时间内备份​​ mySQL 数据库? [关闭]
【发布时间】:2013-08-26 06:28:17
【问题描述】:

我打算在一段时间内备份​​mySQL数据库。 例如:只备份一月到六月的数据。

有可能做到吗?我想这样做的原因是我不想备份太旧的数据库。 如果可能的话,请给我一些建议如何做到这一点。 谢谢。

【问题讨论】:

  • 把话题暂时搁置,真的吗?我认为 SQL 查询甚至命令行工具都适合这个网站。

标签: mysql backup


【解决方案1】:

我假设您要根据日期备份表 ROWS,而不是表本身。

如果您的表有datetimestamp 列,那么您可以使用INTO OUTFILE 查询基于日期备份某些行。

或者,您可以在命令行中使用带有--where 选项的mysqldump。

看到这个答案: MYSQL Dump only certain rows

【讨论】:

  • 如果我需要以这种方式备份包含所有表的整个数据库,这个 --where 选项仍然适用于这种情况吗?提供的答案似乎只是备份特定表中的某些数据行。
【解决方案2】:

试试这个:

exec("mysqldump --opt -u$db_user -p$db_pass --no-create-info --where date >= '2013-08-01' my_database my_table > backup.sql");

【讨论】:

    【解决方案3】:

    您有几种方法可以做到这一点,您可以使用 shell 脚本并将mysqldump 作为 cronjob 运行,您应该只编写类似以下脚本的内容,然后将其添加到您的 crobjob。

    #!/bin/bash
    mysqldump --add-drop-table -h <hostname> -u <username> --password=<password> --all-databases > backup.sql
    filename="backup.sql."`eval date +%Y%m%d`".tgz"
    tar -czf $filename backup.sql 
    rm backup.sql 
    

    然后通过crontab -e 编辑crobjob 并添加类似于以下行的内容:

    * * * * * /usr/local/bin/php /home/moein/projects/WebService/index.php
    #this cronjob executed every min.
    

    你可以在mysql中使用event获取备份。但是你的mysql版本应该是> 5.1.8

    mysql dev page 有更好的描述。

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2011-01-14
      • 1970-01-01
      相关资源
      最近更新 更多