IntelliJ/Spring连接MySQL数据库遭1045权限拒绝问题求助
解决 JetBrains 工具连接 MySQL 出现 1045 权限拒绝的问题
可能的原因及排查步骤
1. 检查 MySQL 用户权限匹配规则
MySQL 用户权限是按 用户名@主机 精确匹配的,即便你设置了 ERP_admin@%,如果存在更精确的匹配项(比如ERP_admin@DESKTOP-FK4UCCU.***),会优先触发这条规则,而该用户可能无权限或密码不匹配。
- 登录 MySQL 执行命令查看现有用户规则:
SELECT user, host FROM mysql.user WHERE user = 'ERP_admin'; - 若存在
ERP_admin@DESKTOP-FK4UCCU.***记录,可删除该条目让%规则生效:DROP USER 'ERP_admin'@'DESKTOP-FK4UCCU.***'; FLUSH PRIVILEGES;
2. 核对 JetBrains 连接配置细节
- 确认「数据源与驱动程序」中的目标数据库名称准确无误,且
ERP_admin拥有该库的访问权限。 - 关闭「使用SSL连接」选项,部分场景下SSL配置不兼容会触发权限验证失败。
- 在连接配置的「高级」选项中添加参数:
useSSL=false、allowPublicKeyRetrieval=true。
3. 验证密码有效性(规避特殊字符转义)
JetBrains 工具对密码中特殊字符(如@、#、$)的处理逻辑可能和VSCode不同,导致实际传递的密码错误。
- 先重置
ERP_admin为无特殊字符的简单密码测试:ALTER USER 'ERP_admin'@'%' IDENTIFIED BY 'new_simple_pwd'; FLUSH PRIVILEGES; - 若简单密码可成功连接,再尝试换回原密码,或在密码输入框用引号包裹原密码(如
"your_pwd_with_special_chars")。
4. 检查 MySQL 绑定地址配置
确保 MySQL 配置文件(Windows为my.ini,Linux为my.cnf)中bind-address设置为0.0.0.0,允许所有主机连接,而非仅本地回环地址127.0.0.1。修改后重启MySQL服务。
5. 排查防火墙与网络代理
JetBrains 工具可能使用系统代理,导致连接请求的来源IP和VSCode不同,被MySQL权限规则拦截。
- 关闭系统代理或VPN后重试连接。
- 确认本地防火墙允许IntelliJ、DataGrip访问MySQL默认端口3306。
内容的提问来源于stack exchange,提问作者MichaelAtm
相关产品推荐
相关产品推荐

