name: Fix MySQL Auth Plugin on: push: branches: [main] paths: ['.gitea/workflows/fix-mysql-auth.yaml'] jobs: fix-mysql: runs-on: aliyun steps: - name: Install docker-cli run: | sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories apk add --no-cache docker-cli - name: Find and fix MySQL user run: | # Find the MySQL container MYSQL_CONTAINER=$(docker ps --filter "ancestor=mysql" --format "{{.Names}}" | head -1) if [ -z "$MYSQL_CONTAINER" ]; then MYSQL_CONTAINER=$(docker ps --filter "name=mysql" --format "{{.Names}}" | head -1) fi echo "MySQL container: $MYSQL_CONTAINER" if [ -n "$MYSQL_CONTAINER" ]; then # Try common root password patterns from 1Panel for PASS in "qwenpaw_database" "root" "123456" "password" ""; do echo "Trying root password: '${PASS:0:3}...'" if docker exec "$MYSQL_CONTAINER" mysql -uroot -p"$PASS" -e " ALTER USER 'qwenpaw'@'%' IDENTIFIED WITH caching_sha2_password BY 'cRs3XtJkCp4hhP3y'; FLUSH PRIVILEGES; SELECT user, host, plugin FROM mysql.user WHERE user='qwenpaw'; " 2>/dev/null; then echo "✅ Successfully altered qwenpaw user auth plugin!" exit 0 fi done # Also try via environment variable echo "Trying MYSQL_ROOT_PASSWORD env var..." ROOT_PASS=$(docker inspect "$MYSQL_CONTAINER" --format '{{range .Config.Env}}{{println .}}{{end}}' | grep MYSQL_ROOT_PASSWORD | cut -d= -f2) if [ -n "$ROOT_PASS" ]; then echo "Found MYSQL_ROOT_PASSWORD: ${ROOT_PASS:0:3}..." docker exec "$MYSQL_CONTAINER" mysql -uroot -p"$ROOT_PASS" -e " ALTER USER 'qwenpaw'@'%' IDENTIFIED WITH caching_sha2_password BY 'cRs3XtJkCp4hhP3y'; FLUSH PRIVILEGES; SELECT user, host, plugin FROM mysql.user WHERE user='qwenpaw'; " && echo "✅ Successfully altered qwenpaw user auth plugin!" || echo "❌ Failed" else echo "No MYSQL_ROOT_PASSWORD found in container env" fi else echo "ERROR: No MySQL container found" fi