AMH面板下通过mysqldump命令备份数据库文件
首先查看你的AMH数据库版本,当前(AMH7.2)默认自带是mysql5.7,mysql-generic-5.7.sock文件位于/tmp/mysql-generic-5.7.sock
如果你是其它版本的数据库,请登录你的AMH面板查看 数据-->参数配置-->配置编辑方式 这里可以看到.sock文件的具体路径。
测试备份
/usr/local/mysql-generic-5.7/bin/mysqldump -u your_db_user -p'your_db_password' -S /tmp/mysql-generic-5.7.sock your_database_name > /path/to/backup/test_backup.sql
没问题的话可以使用以下脚本
#!/bin/bash
# 配置部分
MYSQLDUMP_PATH="/usr/local/mysql-generic-5.7/bin/mysqldump" # mysqldump 的路径
DB_USER="your_db_user" # 数据库用户名
DB_PASS="your_db_password" # 数据库密码
DB_NAME="your_database_name" # 要备份的数据库名称
SOCKET_PATH="/tmp/mysql-generic-5.7.sock" # MySQL 的 socket 文件路径
BACKUP_DIR="/path/to/backup" # 备份文件存储目录
DATE=$(date +"%Y-%m-%d_%H-%M-%S") # 获取当前日期时间
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql" # 备份文件路径
# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"
# 导出数据库
$MYSQLDUMP_PATH -u $DB_USER -p$DB_PASS -S $SOCKET_PATH $DB_NAME > "$BACKUP_FILE"
# 检查导出结果
if [ $? -eq 0 ]; then
echo "[$(date +"%Y-%m-%d %H:%M:%S")] Database $DB_NAME backup successful. Saved to $BACKUP_FILE" >> "$BACKUP_DIR/backup.log"
else
echo "[$(date +"%Y-%m-%d %H:%M:%S")] Database $DB_NAME backup failed." >> "$BACKUP_DIR/backup.log"
fi
如果需要定时备份,请自行设定crontab任务
crontab -e