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

MySQL无法连接Docker Compose,提示Access denied for user (using password: YES)

问题求助:VS Code代码连接Docker部署的MySQL时出现权限错误

我正在做一个学校项目,需要把VS Code里的代码连接到Docker部署的MySQL,但连接数据库时一直弹出「Access denied for user (using password: YES)」错误。我试过重建数据库、重新创建MySQL配置文件、修改代码、调整MySQL设置,还反复检查了Docker相关文件,但都没解决问题。附上相关配置截图,麻烦帮忙看看怎么解决。

相关配置截图

  • MySQL设置:MySQL设置
  • 错误提示:错误提示
  • Docker数据库构建代码:Docker数据库构建代码
  • docker-compose配置文件:docker-compose配置文件
  • MySQL schema代码:MySQL schema代码
  • MySQL其余配置:MySQL其余配置

排查方向和解决建议

  1. 检查用户权限范围
    • 确认MySQL用户是否允许从%(任意IP)连接,默认创建的用户可能只限制localhost访问。进入Docker容器内的MySQL,执行以下SQL:
      GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码';
      FLUSH PRIVILEGES;
      
  2. 核对连接参数一致性
    • 确保代码里的数据库地址、端口、用户名、密码,和docker-compose中设置的MYSQL_USER、MYSQL_PASSWORD、MYSQL_ROOT_PASSWORD完全匹配,注意大小写和特殊字符。
  3. 确认容器网络连通性
    • 在VS Code所在机器上,用命令测试Docker容器的MySQL端口是否可访问:
      telnet localhost 3306
      
      如果不通,检查docker-compose的端口映射是否正确,容器是否正常启动。
  4. 检查MySQL初始化时机
    • Docker部署MySQL时,初始化脚本(如schema.sql)可能在用户创建前执行,导致权限配置失效。可以把用户授权语句加入初始化脚本,或等容器完全启动后再执行授权操作。
  5. 清理旧容器和数据卷
    • 旧数据卷可能残留无效配置,执行以下命令彻底清理后重新部署:
      docker-compose down -v
      docker-compose up --build
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:55:05