唠嗑
搞到凌晨两点,真是气死我辣,踩了一堆坑,最后确定了用这套方案
准备
利用mysql_config_editor
工具来配置Mysql
的登录路径,它可以让你以安全的方式保存Mysql
用户名和密码,说到底就是配置了之后,就不需要你手动输密码了,直接指定这个路径就行
mysql_config_editor set --login-path=backup --user=root --password
# mysql_config_editor set:指定要进行设置操作,即添加一个新的登录路径或修改现有路径。
--login-path=backup:指定一个登录路径名称为 backup。这个路径名可以是任意名称,用于区分不同的配置(比如 backup 和 admin 可以是两个不同的登录配置)。之后,你可以使用 --login-path=backup 来调用这个路径,避免手动输入用户名和密码。
--user=root:指定 MySQL 用户名为 root。
--password:指定需要输入密码。运行命令时,它会提示你输入密码,不会在命令中直接显示密码(为了安全)。这个密码会被加密并安全地存储在 MySQL 配置文件中。
生成后路径:~/.mylogin.cnf
如何删除?
可以直接删除文件,也可以命令
mysql_config_editor remove --login-path=backup
备份脚本
#!/bin/bash
# 设置变量
# 设置备份文件存储的路径(可以根据需要更改为你的备份文件夹路径)
BACKUP_DIR="/path/backup"
# 设置日期格式,以便将日期添加到备份文件名中
DATE=$(date +"%Y%m%d_%H%M%S")
# 设置备份文件名
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$DATE.sql"
# 检查备份目录是否存在,如果不存在则创建它
if [ ! -d "$BACKUP_DIR" ]; then
echo "备份目录不存在,正在创建: $BACKUP_DIR"
mkdir -p "$BACKUP_DIR"
fi
# 开始备份
echo "开始备份MySQL数据库..."
# 使用 mysqldump 命令备份数据库
# 使用 --login-path=backup 指定加密存储的用户和密码信息
mysqldump --login-path=backup --all-databases > "$BACKUP_FILE"
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "数据库备份成功,生成文件: $BACKUP_FILE"
else
echo "数据库备份失败!"
exit 1
fi
# 压缩备份文件
echo "正在压缩备份文件..."
gzip "$BACKUP_FILE"
# 检查压缩是否成功
if [ $? -eq 0 ]; then
echo "压缩成功,生成文件: $BACKUP_FILE.gz"
else
echo "压缩失败!"
exit 1
fi
echo "备份完成。"