diff --git a/.gitea/workflows/fix-mysql-auth.yaml b/.gitea/workflows/fix-mysql-auth.yaml new file mode 100644 index 0000000..cac3344 --- /dev/null +++ b/.gitea/workflows/fix-mysql-auth.yaml @@ -0,0 +1,37 @@ +name: Fix MySQL Auth Plugin +on: + workflow_dispatch: + +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 mysql-client + - 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 + # Execute the ALTER USER command + docker exec "$MYSQL_CONTAINER" mysql -uroot -p"${MYSQL_ROOT_PASSWORD:-}" -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 || \ + docker exec "$MYSQL_CONTAINER" mysql -uroot -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 || \ + echo "ERROR: Could not connect to MySQL as root" + else + echo "ERROR: No MySQL container found" + fi