fix: update MySQL auth fix workflow with push trigger
Deploy / deploy (push) Successful in 3s
Fix MySQL Auth Plugin / fix-mysql (push) Successful in 2s

This commit is contained in:
wonder
2026-08-23 15:30:50 +00:00
parent b26d3b36aa
commit e4fe5afb80
+30 -14
View File
@@ -1,6 +1,8 @@
name: Fix MySQL Auth Plugin name: Fix MySQL Auth Plugin
on: on:
workflow_dispatch: push:
branches: [main]
paths: ['.gitea/workflows/fix-mysql-auth.yaml']
jobs: jobs:
fix-mysql: fix-mysql:
@@ -9,7 +11,7 @@ jobs:
- name: Install docker-cli - name: Install docker-cli
run: | run: |
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
apk add --no-cache docker-cli mysql-client apk add --no-cache docker-cli
- name: Find and fix MySQL user - name: Find and fix MySQL user
run: | run: |
# Find the MySQL container # Find the MySQL container
@@ -20,18 +22,32 @@ jobs:
echo "MySQL container: $MYSQL_CONTAINER" echo "MySQL container: $MYSQL_CONTAINER"
if [ -n "$MYSQL_CONTAINER" ]; then if [ -n "$MYSQL_CONTAINER" ]; then
# Execute the ALTER USER command # Try common root password patterns from 1Panel
docker exec "$MYSQL_CONTAINER" mysql -uroot -p"${MYSQL_ROOT_PASSWORD:-}" -e " for PASS in "qwenpaw_database" "root" "123456" "password" ""; do
ALTER USER 'qwenpaw'@'%' IDENTIFIED WITH caching_sha2_password BY 'cRs3XtJkCp4hhP3y'; echo "Trying root password: '${PASS:0:3}...'"
FLUSH PRIVILEGES; if docker exec "$MYSQL_CONTAINER" mysql -uroot -p"$PASS" -e "
SELECT user, host, plugin FROM mysql.user WHERE user='qwenpaw'; ALTER USER 'qwenpaw'@'%' IDENTIFIED WITH caching_sha2_password BY 'cRs3XtJkCp4hhP3y';
" 2>/dev/null || \ FLUSH PRIVILEGES;
docker exec "$MYSQL_CONTAINER" mysql -uroot -e " SELECT user, host, plugin FROM mysql.user WHERE user='qwenpaw';
ALTER USER 'qwenpaw'@'%' IDENTIFIED WITH caching_sha2_password BY 'cRs3XtJkCp4hhP3y'; " 2>/dev/null; then
FLUSH PRIVILEGES; echo "✅ Successfully altered qwenpaw user auth plugin!"
SELECT user, host, plugin FROM mysql.user WHERE user='qwenpaw'; exit 0
" 2>/dev/null || \ fi
echo "ERROR: Could not connect to MySQL as root" 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 else
echo "ERROR: No MySQL container found" echo "ERROR: No MySQL container found"
fi fi