mysqldump定时备份数据库
mysql服务器ip:192.168.0.10
备份服务器ip:192.168.0.11
数据库名称:db_product
思路:在mysql服务器A上创建一个用户分配权限专门用于数据库备份,A服务器可以是数据库集群中的slave之一。找一个磁盘宽裕的服务器B,安装mysql的客户端。
在服务器B上执行mysqldump命令备份数据库。
只安装mysql客户端的教程:https://www.cnblogs.com/xxoome/p/8313453.html
#创建用户,用户名为【backupuser】并限制客户端连接ip,【192.168.0.11】为B服务器的ip CREATE USER 'backupuser'@'192.168.0.11' IDENTIFIED BY 'pwd'; #授予用户权限,限制了可以访问的数据库 GRANT ALL ON db_product.* TO 'backupuser'@'192.168.0.11'; flush privileges;
编写脚本
#创建脚本 touch mysql_backup.sh #增加可执行权限 chmod +x mysql_backup.sh
脚本内容
#!/bin/sh # File: /usr/local/xiaohb/mysql_backup.sh # Database info DB_NAME="db_product" DB_USER="backupuser" DB_PASS="pwd" DB_HOST="192.168.0.10" DB_PORT="3306" BIN_DIR="/usr/bin" BCK_DIR="/usr/local/xiaohb/mysql_backup" DATE=`date +%Y%m%d_%H%M%S` mkdir -p $BCK_DIR #$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql # 为了减小磁盘空间的消耗,这里使用gzip压缩 $BIN_DIR/mysqldump --opt -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/$DB_NAME.dump_$DATE.sql.gz
创建定时任务
#编辑定时任务 crontab -e #若crontab没有安装 yum install -y vixie-cron #每天整点备份一次 0 */1 * * * /usr/local/xiaohb/mysql_backup.sh #重载crontab service crond reload
备份列表
恢复数据
gzip -d FileName.gz ---切换到备份目录,解压gz压缩
mysql -uuser -ppasswd ---登录数据库 mysql> create database test_db; ---创建数据库 mysql> use test_db; --- 切换到要恢复的数据库 mysql> source /mysql_backup/sy_test.dump_20210129_1340.sql ---恢复数据库
原文连接:https://www.cnblogs.com/xxoome/p/10027945.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏