You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10下IntelliJ IDEA无法连接Docker中的MariaDB容器:提示Access denied求助

Windows 10下IntelliJ IDEA无法连接Docker中的MariaDB容器:提示Access denied求助

我之前在Windows环境折腾Docker容器数据库连接时,也碰到过几乎一模一样的问题!结合你的情况,给你几个亲测有效的排查和解决思路,一步步来应该能搞定:


1. 先把连接地址从localhost换成127.0.0.1试试

Windows下的localhost解析有时候会因为WSL2/Hyper-V的网络机制“抽风”——明明端口映射好了,但用localhost连接时,请求可能没正确转发到容器里。你直接在IDEA的数据库连接配置里,把主机地址改成127.0.0.1,端口保持3306,再点测试连接,大概率能解决问题。

如果还是不行,那就查一下容器的实际IP,用IP直接连:
执行命令获取容器IP:

docker inspect mariadb-container | findstr IPAddress

把得到的IP(比如172.17.0.2)填到IDEA的主机地址里,再试一次。

2. 重新重置容器内用户的密码权限

虽然你看到user的Host是%(允许任意地址连接),但有时候容器初始化时的密码哈希可能和主机端的验证不匹配。进入容器重新设置一遍密码:

  1. 先进入容器的MariaDB命令行:
docker exec -it mariadb-container mariadb -u root -p

输入root密码(你设置的password)后,执行SQL语句重置用户密码:

ALTER USER 'user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

这里密码要和你启动容器时的MYSQL_PASSWORD保持一致,重置后再回到IDEA测试连接。

3. 检查IDEA的连接配置细节

别小看这些细节,有时候就是这里出问题:

  • 确认数据库类型选的是MariaDB,不是MySQL(虽然两者兼容,但驱动和验证逻辑有细微差别)
  • 取消勾选“Use SSL”选项(MariaDB默认不需要SSL连接,IDEA有时候会默认勾选)
  • 点击“Test Connection”前,先点击“Download”按钮,下载适配最新MariaDB版本的驱动,旧驱动可能会导致验证失败

4. 排查Docker Desktop的网络设置

如果上面的方法都没用,看看Docker的网络后端是不是有问题:

  • 打开Docker Desktop的设置,进入「Resources」→「WSL Integration」,确保你正在使用的WSL发行版(比如Ubuntu)是开启状态
  • 可以试试切换Docker的后端:如果当前用的是WSL2,切换到Hyper-V;如果是Hyper-V,切换到WSL2。切换后重启Docker,再重新启动MariaDB容器测试

5. 检查Windows的hosts文件

有时候hosts文件的异常映射也会导致连接问题:
打开C:\Windows\System32\drivers\etc\hosts文件,查看localhost的映射:

  • 如果有::1 localhost(IPv6映射),可以把这一行注释掉(前面加#),只保留127.0.0.1 localhost
  • 保存文件后,重启IDEA再试连接

按照这个顺序一步步排查,应该能解决你的问题!我当时就是换了127.0.0.1就直接连上了,你先试试第一个方法~

火山引擎 最新活动