GoLand连接MariaDB失败主因是驱动未正确安装或版本不兼容。需手动下载mariadb-java-client(推荐3.1.4/3.3.0,旧版用2.7.5),通过Database Drivers页面添加;注意localhost应改用127.0.0.1,避免URL模式明文存密,MariaDB 10.11+需适配sha256_password认证。

GoLand里连不上MariaDB,先看驱动是不是真装上了
GoLand 本身不自带 MariaDB JDBC 驱动,必须显式下载并绑定。很多人点 Test Connection 失败,日志里只报“No suitable driver found”,其实不是配置错了,而是驱动压根没加载进来。
正确做法是:在 Database 工具窗口点击 + → Data Source → MariaDB 后,别急着填参数。先看设置面板右下角有没有 Download missing driver files 链接——有就点它;没有,说明 GoLand 认为你已有驱动,但大概率是缓存误判或路径损坏。
- 手动验证驱动是否存在:打开
Help→Find Action(Ctrl+Shift+A),搜Driver Files,进Database Drivers页面,检查MariaDB条目下Files列是否显示一个带版本号的 JAR(如mariadb-java-client-3.3.0.jar) - 如果为空或显示
Not found,点右侧+手动添加:下载最新版mariadb-java-client(推荐3.1.4或3.3.0,避开3.0.x中已知的 TLS 1.3 兼容问题),选中 JAR 文件即可 - 旧版 GoLand(2023.3 之前)对
mariadb-java-client 3.x支持不稳定,若连上后频繁断连或元数据加载失败,降级到2.7.5更稳妥
连接时 Host 和 Port 填错,比密码错还难排查
常见错误现象是 Connection refused 或 Connection timed out,但 Test Connection 按钮却显示“Success”——这是因为 GoLand 的测试逻辑只校验驱动加载和 URL 格式,不真建 TCP 连接。
必须人工确认三件事:
-
Host不能写localhost:本地开发时,localhost会走 Unix socket,而 JDBC 强制走 TCP。应填127.0.0.1或实际服务 IP -
Port默认是3306,但 MariaDB 容器或某些云服务(如阿里云 RDS)可能改了端口。用mysql -h <host> -P <port> -u root -p</port></host>命令行先连通再配 IDE - 远程服务器需额外检查:Linux 上
systemctl status mariadb看服务是否 running;ss -tlnp | grep :3306看端口是否监听在0.0.0.0:3306而非仅127.0.0.1:3306
URL only 模式看着方便,但凭据会明文落盘
在 Connection type 选 URL only 时,你填的完整 JDBC URL(含用户名密码)会被原样写进 .idea/dataSources.xml,且会在 IDE 日志、数据库连接详情页直接可见。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
这不是理论风险——只要项目目录被共享、备份或上传 Git,密码就裸奔了。生产环境绝对禁用。
- 正确做法:选
Default连接类型,把Host、Port、Database、User分开填,密码用 IDE 内置密钥环管理(勾选Remember password即可) - 如果必须用 URL(比如连接串含特殊参数
?allowPublicKeyRetrieval=true&useSSL=false),请确保.idea目录不在 Git 跟踪范围内(检查.gitignore是否含.idea/) - 曾有用户因 URL 模式泄露密码导致云数据库被扫库,事后发现
dataSources.xml被误提交到了公开仓库
GoLand 2025 对 MariaDB 10.11+ 的兼容性要点
GoLand 2025(含 2025.1)默认捆绑的 JDBC 驱动仍基于 mariadb-java-client 2.7.x,而 MariaDB 10.11 默认启用 sha256_password 插件认证,旧驱动不支持。
表现是:连接时卡在“Connecting…”,几秒后报 Could not connect to address=(host=xxx)(port=3306)(type=master) : Could not find a valid authentication plugin。
- 临时解法:在 MariaDB 服务端执行
SET GLOBAL default_authentication_plugin = 'mysql_native_password';,并重置用户密码(ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx';) - 长期解法:升级驱动到
mariadb-java-client 3.1.4+,并在连接 URL 后追加?serverSslMode=DISABLED&allowPublicKeyRetrieval=true(若服务端未配 SSL) - 注意:GoLand 2025.2 开始将默认驱动升级至 3.3.0,但目前(2026年8月)稳定版尚未发布,手动替换仍是刚需
最易被忽略的是:即使驱动升级成功,若 MariaDB 服务端 plugin_dir 路径不对或 sha256_password 插件未加载,客户端依然无法协商认证方式——这时候得去查 mysqld.err 日志,而不是只盯着 IDE 报错。


















