You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中为MySQL授权解决访问拒绝问题

GitHub Actions配置MySQL时用户访问被拒问题

我正在尝试用GitHub Actions做测试,之前的「test-not-found-in-github-actions」问题已经解决,测试可以正常识别,但配置MySQL时遇到用户访问被拒绝错误。

在生产服务器上,我验证过授予以下9项权限后Django能正常运行:

-- 在虚拟私有服务器上执行
mysql> CREATE DATABASE portfolio_db DEFAULT CHARACTER SET utf8mb4;
       Query OK, 1 row affected (0.01 sec)
mysql> CREATE USER 'python'@'%' IDENTIFIED BY 'XXXXXXXX';
mysql> grant CREATE, DROP, SELECT, UPDATE, INSERT, DELETE, ALTER, REFERENCES, INDEX on portfolio_db.* to 'python'@'localhost';

但我不知道怎么在GitHub Actions里正确执行这些命令,按以下方式执行仍报错,且已确认Secrets能正常输出:

mysql -u${{ secrets.DB_USER }} -p${{ secrets.DB_PASSWORD }} -e 'CREATE DATABASE portfolio_db DEFAULT CHARACTER SET utf8mb4;'
mysql -u${{ secrets.DB_USER }} -p${{ secrets.DB_PASSWORD }} -e 'CREATE USER '${{ secrets.DB_USER }}'@'localhost' IDENTIFIED BY '${{ secrets.DB_PASSWORD }}';'
mysql -u${{ secrets.DB_USER }} -p${{ secrets.DB_PASSWORD }} -e 'grant CREATE, DROP, SELECT, UPDATE, INSERT, DELETE, ALTER, REFERENCES, INDEX on portfolio_db.* to '${{ secrets.DB_USER }}'@'localhost';'

报错信息:

Warning: Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user '***'@'localhost' (using password: YES)
Error: Process completed with exit code 1.

我试过多种方法都没解决,求解决方案。

补充信息:

  • Django会使用settings配置创建临时数据库,目前不确定凭据来自.env还是临时凭据。
  • 从日志看,迁移文件已创建,但无法登录数据库。
  • 若使用临时凭据即可,django.yml里的echo操作可能无需保留。

内容的提问来源于stack exchange,提问作者yoshitaka okada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:39:19