안녕하세요.
불편을 드려 죄송합니다. 트레이스와 데이터베이스를 대조해 본 결과 근본 원인을 찾았습니다. 백업 기능은 MySQL 서비스의 MYSQL_USERNAME 환경 변수를 읽어오는데, 현재 서비스에는 MYSQL_USER만 있고 MYSQL_USERNAME이 없어서 백업 프로그램이 사용자 이름을 가져오지 못해 MISSING_DATABASE_USERNAME 오류가 발생하는 것입니다.
참고로, Zeabur MySQL 템플릿에서 기본적으로 제공하는 환경 변수는 다음과 같아야 합니다:
MYSQL_USERNAME = root
PASSWORD = <자동 생성>
MYSQL_PASSWORD = ${MYSQL_ROOT_PASSWORD}
MYSQL_ROOT_PASSWORD = ${PASSWORD}
MYSQL_DATABASE = zeabur
MYSQL_HOST = ${CONTAINER_HOSTNAME}
MYSQL_PORT = ${DATABASE_PORT}
현재 서비스에서는 MYSQL_USERNAME이 사라지고 MYSQL_USER = mysql로 변경된 것으로 보아, 이전에 수동으로 수정하신 것 같습니다.
가장 간단한 해결 방법: 해당 MySQL 서비스의 Variables 페이지로 이동하여 다음 변수를 추가하세요:
MYSQL_USERNAME = root
(기존 MYSQL_USER는 삭제할 필요가 없습니다. 애플리케이션에서 참조하고 있다면 그대로 두셔도 됩니다.)
추가 후 "백업 생성(Create Backup)"을 다시 시도하면 성공할 것입니다. 백업은 root 권한으로 mysqldump를 실행하므로 root를 입력하는 것이 맞습니다. 만약 mysql로 입력하면 해당 사용자는 zeabur 데이터베이스에 대해서만 권한을 가지므로 백업이 불완전하게 수행됩니다.