基于 mysql 镜像的定时自动备份数据和清除过期备份

基于 mysql 镜像的定时自动备份数据和清除过期备份,第1张

CentOS 7

mysql8镜像

备份方式:mysqldump 命令

mysql_backup.sh 脚本,本例将其放置在 /home/test/db_bk 文件夹

执行以上脚本后,会在挂在路径下生成 “/backup/日期” 的文件夹,文件夹内存着备份的 sql 文件,当需要恢复备份时,执行对应的 sql 文件即可。

Linux 内置的 cron 进程可以用于开启定时任务

cron进程简介

进入 cron 编辑器:

编辑cron命令:

可以通过以下命令,查看定时任务情况:

执行以上脚本后,会在挂在路径下生成 “/backup/日期” 的文件夹,文件夹内存着备份的 sql 文件,当需要恢复备份时,执行对应的 sql 文件即可。

可以把备份的 sql 文件导出,然后用 navicat 之类的工具执行 sql 文件即可。

1.3.2.1

*注意: 需要设置字符集,否则会乱码,mysql -u [用户] -p --default-character-set=utf8mb4

1.3.2.2

删除的办法是执行truncat方法,只是不需要每次手动的输入truncate命令进行删除。

通过sql命令的方式生成所有的truncate语句并写入到.sql脚本文件中,然后执行脚本即可完成删除 *** 作,并且保留了表结构。

生成truncate命令的sql语句为:

SELECTCONCAT('TRUNCATETABLE',TABLE_NAME,';')FROMinformation_schema.TABLESWHERETABLE_SCHEMA='test'intooutfile'/tmp/truncate_test.sql';。

然后将生成的.sql脚本拷贝到当前文件夹下面:

mv/tmp/truncate_test.sql$current_dir/。

然后执行.sql脚本将数据库中所有表中数据删除:

source$current_dir/truncate_test.sql。

注意:

在进行select....intooutfile...... *** 作时,默认只能将文件写入到tmp路径下,可以不用将tmp文件夹下面的.sql脚本移动到当前文件夹下,直接在tmp路径下执行.sql脚本即可。

扩展资料:

常见的删除数据库表中数据的方法是通过delete或者truncate的方法进行删除 *** 作,如果删除的是表中某一条或者部分数据的话适合用delete *** 作进行删除,如果要删除表中所有的数据的话,适合是同truncate进行删除 *** 作。

如果不需要保留数据库中所有表的结构,那么答案很简单,执行命令dropdatabase数据库名即可达到目的。

但是如果需要保留该数据库中所有表的结构,只想删除所有表中的数据,多执行几次truncate可以达到。

参考资料:百度百科-数据表


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6787420.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存