mysql5的备份脚本 mysqlbackup.sh
#!/bin/bash
date_now=$(date +%Y%m%d%H%M)
date_day=$(date "+%Y-%m-%d")
function backup() {
echo "start ..."
# 密码要是包含特殊字符,要用\转
mysqldump -u root -plan\&ren312 --all-databases > lanren312/mysqlbackup/mysqlbackup_${date_now}.sql
echo "备份数据库完成时间: " ${date_now}
}
backup
升级到mysql8后,执行脚本报错,大致意思就是密码不能写在脚本中
mysqldump: [Warning] Using a password on the command line interface can be insecure.
执行手动备份
mysqldump -u root -p --all-databases > /lanren312/mysqlbackup/mysqlbackup_20230323.sql
输入mysql密码
想要做成脚本启动,参考 https://blog.youkuaiyun.com/qq_44209563/article/details/107525997
修改my.cnf配置文件
find / -name my.cnf # 查找文件位置
[client] --这个没有就新增
user=数据库账户
password=数据库密码
修改脚本 mysqlbackup.sh
find / -name my.cnf # 查找文件位置,脚本中要用
find / -name mysqldump # 查找文件位置,脚本中要用
#!/bin/bash
date_now=$(date +%Y%m%d%H%M)
date_day=$(date "+%Y-%m-%d")
backupdir=/data/mysqlbackup
function backup() {
echo "start ..."
# 等于是读了my.cnf中配置
/usr/local/mysql/bin/mysqldump --defaults-extra-file=/usr/local/mysql/my.cnf --all-databases | gzip > $backupdir/backdb-${date_now}.sql.gz
# mysq8.0.32 用这个(二者用其一)。根据 find / -name mysqldump结果来
/usr/bin/mysqldump --defaults-extra-file=/etc/my.cnf --all-databases | gzip > $backupdir/backdb-${date_now}.sql.gz
# [-mmin +1]删除1分钟之前的文件,[-mtime +10]是每隔10天删除一次
find $backupdir -name "backdb-*.sql.gz" -type f -mtime +10 -exec rm {} \; > /dev/null 2>&1
echo "备份数据库完成时间: " ${date_now}
}
backup
定时启动脚本请参考我的博客 centos7定时任务清除buff/cache_centos buff/cache_lanren312的博客-优快云博客