远程数据库无法导入无法备份的问题

先是远程连接数据库,服务器是aws的,连接的数据库是aws rds,连接是正常的,通过ssl连接,主机地址填写的是rds端点域名。
面板导入数据库,报错。
然后安装phpadmin从phpadmin导入,正常导入。
面板上点击备份,一样报错。
然后我自己在应用商店安装的MySQL8.4.4容器,测试面板的MySQL是可以正常导入和备份的。
报错如下图:

添加完远程数据库是否有同步远程数据库?

目前的解决方案是写了个脚本用系统的mysqldump备份。

#!/bin/bash

BACKUP_DIR="/opt/db_backup/backup"
LOG_FILE="/opt/db_backup/backup.log"
DB_LIST=(                             
  "db1"
  "db2"
  "db3"
)
RETENTION_DAYS=14                     # 备份保留天数

mkdir -p "$BACKUP_DIR"
touch "$LOG_FILE"
chmod 600 "$LOG_FILE"

log() {
  echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

{
log "===== 备份任务开始 ====="

if ! command -v mysqldump &> /dev/null; then
  log "错误:mysqldump 未安装!"
  exit 1
fi

log "清理超过 ${RETENTION_DAYS} 天的旧备份..."
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +"$RETENTION_DAYS" -delete

for DB in "${DB_LIST[@]}"; do
  TIMESTAMP=$(date +%Y%m%d_%H%M)
  BACKUP_FILE="${BACKUP_DIR}/${DB}_${TIMESTAMP}.sql.gz"
  
  log "开始备份数据库: $DB"
  
  if mysqldump --defaults-file=/opt/db_backup/.my.cnf \
    --single-transaction \
    --routines \
    --triggers \
    --databases "$DB" | gzip > "$BACKUP_FILE"; then
    
    if [ -s "$BACKUP_FILE" ]; then
      log "备份成功 | 文件大小: $(du -h "$BACKUP_FILE" | awk '{print $1}')"
    else
      log "错误:生成空备份文件!"
      exit 2
    fi
  else
    log "错误:$DB 备份失败!"
    exit 3
  fi
done

log "===== 备份任务完成 ====="
} 2>&1 | tee -a "$LOG_FILE"

然后加入crontab每天定时执行。
面板里面计划任务设置备份目录然后上传到onedrive。

同步了,备份是导入都是失败,尝试备份,我看了系统日志。大概是ssl的问题,日志里面错误的操作:

start to mysqldump | gzip > /opt/1panel/backup/database/mysql/aws/gitea/gitea_2025041613214602aa8.sql.gz.gzip [2025-04-16 13:21:46] 
[DEBUG] docker run --rm --net=host -i mysql:8.4.5 /bin/bash -c 'mysqldump --routines -h database-1.example.ap-northeast-1.rds.amazonaws.com -P 3306 -uadmin -p****** --ssl-mode=DISABLED --default-character-set=utf8mb4 gitea

没有指定 --ssl --ssl-ca=[]或者在mysql里面是 --ssl-mode=VERIFY_IDENTITY \ --ssl-ca=[]
我自己机子机子mysql是基于mariadb client的

for DB in dbq1 db2 db3; do
  mysqldump --defaults-file=/opt/db_backup/.my.cnf \
    --single-transaction \
    --routines \
    --triggers \
    --databases $DB | gzip > /opt/db_backup/backup/${DB}_$(date +%Y%m%d_%H%M).sql.gz
done

ssl证书路径,账号密码地址放在.my.cnf里面
是可以正常备份的