做视频网站把视频放在哪里找,帝国cms免费模板,蓝色扁平化网站,网站服务器查询工具目录
1.简介
2.基本用途
3.命令格式
3.1常用选项
3.2常用命令
4.备份脚本
5.定时执行备份脚本 1.简介
mysqldump 是 MySQL 数据库管理系统的命令行实用程序#xff0c;用于创建数据库的逻辑备份。它能够导出数据库的结构#xff08;如表结构、视图、触发器等#xf…目录
1.简介
2.基本用途
3.命令格式
3.1常用选项
3.2常用命令
4.备份脚本
5.定时执行备份脚本 1.简介
mysqldump 是 MySQL 数据库管理系统的命令行实用程序用于创建数据库的逻辑备份。它能够导出数据库的结构如表结构、视图、触发器等以及表中的数据为 SQL 格式的文本文件。
2.基本用途
全库备份可以备份整个 MySQL 服务器上的所有数据库。单数据库备份仅备份指定的单一数据库。表备份备份特定数据库中的某几张表。
3.命令格式
mysqldump [选项] [数据库名 [表名...]]3.1常用选项
选项描述-u 用户名, --user用户名指定连接MySQL服务器的用户名。-p[密码], --password[密码]提供连接MySQL服务器的密码。如果仅使用 -p将会提示输入密码。为安全起见建议不在命令行直接暴露密码。-h 主机名, --host主机名指定MySQL服务器的主机名或IP地址默认是localhost。-P 端口, --port端口如果MySQL服务不是运行在默认的3306端口可以用此选项指定端口号。-A, --all-databases备份所有数据库。-B, --databases允许指定多个数据库进行备份后面直接列出数据库名。数据库名 [表名...]指定要备份的数据库和可选的表名如果不指定则默认备份所有表。 备份文件路径输出重定向符号用于指定备份文件的保存路径和名称。--single-transaction对于支持事务的存储引擎如InnoDB在开始导出前启动一个事务确保导出数据的一致性适用于在线备份无需锁表。--lock-tablesfalse防止在备份时锁定表通常与 --single-transaction 一起使用尤其适用于InnoDB表。--routines包含数据库中的存储过程和函数到备份中。--triggers包含数据库中的触发器到备份中。--events包含数据库中的事件调度器事件到备份中。--skip-add-drop-table备份时不包含 DROP TABLE 语句这样在恢复时不会删除已存在的表。--quick在转储大表时使用更快的读取方法减少内存消耗。
3.2常用命令
**导出命令大全**
#导出education数据库里面的users表的表数据和表结构mysqldump -u[用户名] -h[ip] -p[密码] -P[端口号] 数据库名 表名 导出的文件名.sqlmysqldump -uroot -h127.0.0.1 -proot -P3306 education usersd:/user.sql
#导出包括系统数据库在内的所有数据库all.sql默认保存在bin文件夹下面mysqldump -uroot -proot --all-databasesall.sql
#导出多张表mysqldump -uroot -proot --databases test --tables t1 t2two.sql
#只导出表结构不导表数据添加“-d”命令参数mysqldump -uroot -h127.0.0.1 -proot -P3306 -d education usersd:/user.sql
#只导出表数据不导表结构添加“-t”命令参数mysqldump -uroot -h127.0.0.1 -proot -P3306 -t education usersd:/user.sql
#只导出test数据库的表结构导出mysqldump -uroot -proot --no-data --databases tests1.sql导入mysql -uroot -proot -h127.0.0.1 -P3306 tests1.sql**导入命令大全**格式mysql -h[ip] -P[(大写)端口] -u[用户名] -p[密码] [数据库名] d:XX.sql(路径) mysql -uroot -proot -h127.0.0.1 -P3306 educationd:/database.sqlmysql -uroot -proot -h127.0.0.1 -P3306 d:/all_database.sql
#命令行导入mysql use test;mysql source /home/test/database.sql4.备份脚本
#!/bin/bash# 设置脚本名称、日期等信息
NAMEMySQL Database Backup Script
DATE$(date %Y-%m-%d-%H-%M)
LOG_FILE/var/log/mysql_backup.log# 使用环境变量或配置文件读取敏感信息提高安全性
source /etc/mysql_backup.conf 2/dev/null # 假设配置文件存放于此路径# 若配置文件不存在则设置默认值或提示错误
: ${MYSQL_USER:mysql_user_not_set}
: ${MYSQL_PASSWORD:mysql_passwd_not_set}
: ${MYSQL_HOST:localhost}
: ${MYSQL_PORT:3306}
: ${MYSQL_CHARSET:utf8mb4}
: ${BACKUP_PATH:/backups/mysql}
: ${MAX_BACKUPS:10}
: ${EMAIL_TO:youexample.com}
: ${EMAIL_FROM:backup_scriptexample.com}# 创建备份目录如果不存在
mkdir -p $BACKUP_PATH# 获取当前日期时间用于备份文件命名
DATE_TIME$(date %Y%m%d_%H%M%S)# 执行备份并压缩
mysqldump --opt --all-databases --single-transaction --flush-logs --master-data2 \-h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD \| gzip $BACKUP_PATH/mysql_backup_$DATE_TIME.sql.gzif [ $? -eq 0 ]; thenecho $(date) - 数据库备份成功 $LOG_FILE# 删除超出保留数量的旧备份find $BACKUP_PATH -name *.sql.gz -type f | sort | head -n -$MAX_BACKUPS | xargs -r rm -fecho $(date) - 已清理过期备份文件 $LOG_FILE# 发送邮件通知需要安装mail或msmtp等工具{echo 主题: MySQL 数据库备份通知echo From: $EMAIL_FROMecho To: $EMAIL_TOecho echo 数据库备份已完成备份文件mysql_backup_$DATE_TIME.sql.gzecho 备份路径$BACKUP_PATH} | mail -s $(echo -e MySQL Backup on $DATE) $EMAIL_TO
elseecho $(date) - 数据库备份失败请检查错误日志 $LOG_FILE# 发送错误通知{echo 主题: MySQL 数据库备份失败通知echo From: $EMAIL_FROMecho To: $EMAIL_TOecho echo 数据库备份失败请立即检查。} | mail -s $(echo -e MySQL Backup Failure on $DATE) $EMAIL_TO
fi说明: 环境变量: 使用环境变量读取敏感信息可以提高脚本的灵活性和安全性。这里假设存在一个/etc/mysql_backup.conf配置文件来集中管理这些变量以避免硬编码。日志记录: 添加了日志文件用于记录备份操作的详细信息方便追踪和审计。备份压缩: 使用gzip命令对备份文件进行压缩减少存储空间占用。自动清理: 使用find命令自动清理超过保留数量的旧备份文件提高了脚本的自动化程度。邮件通知: 添加了成功和失败的邮件通知功能可以及时提醒管理员备份状态mail命令用于发送邮件需确保系统已正确配置邮件发送工具。 5.定时执行备份脚本 编辑Crontab配置首先打开终端并以您的用户身份运行crontab命令来编辑Cron配置。如果您想要以root用户身份执行备份可以使用sudo crontab -e否则只需输入crontab -e。 添加定时任务在打开的Crontab文件中移动光标到文件末尾然后添加以下行来设定定时任务。假设您的备份脚本名为mysql_backup.sh且该脚本位于/usr/local/bin/目录下 0 2 * * * /usr/local/bin/mysql_backup.sh 这行的意思是每天的凌晨2点0分执行/usr/local/bin/mysql_backup.sh脚本。Cron任务的时间格式为分钟 小时 日 月 星期从左到右依次对应。 保存并退出编辑完成后保存文件并退出编辑器。大多数情况下您可以通过按下CtrlX然后按Y键确认保存最后按回车键退出。 测试与验证您可以通过查看Cron的日志通常是/var/log/syslog或/var/log/cron.log具体取决于您的系统配置来确认任务是否按时执行或者等待下一个执行时间点查看是否收到了邮件通知如果您的脚本配置了邮件通知功能。