如何在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
相关产品推荐
相关产品推荐

