☰
DataGrip 驱动包配置全指南:MySQL、Oracle、MongoDB 连接避坑
2026/10/11 11:17:15 网站建设 项目流程

简介:这份资源是面向使用 DataGrip 进行多数据库开发的工程师与运维人员的离线驱动包集合,主要解决 Oracle、MySQL、MongoDB、PostgreSQL、SQL Server 等数据库在无网络或内网环境下驱动缺失、连接失败的问题。压缩包共 121 个文件,以 27 个 jar 驱动包、22 个 pom 与 repositories 依赖描述文件、42 个 sha1 校验文件及若干 txt、xml 配置说明为主,整体约 90.07MB,覆盖 ojdbc、mysql-connector-java、mongo-jdbc-standalone 等常用驱动版本。使用时解压覆盖 DataGrip 配置目录下的 jdbc-drivers 文件夹并重启即可生效,省去逐一下载与手动配置的繁琐。目前已有 1117 人学习下载,适合需要快速搭建本地或离线数据库连接环境的中高级开发者参考使用。

1. 驱动包这件事,为什么总在 DataGrip 里卡住

DataGrip 连接 Oracle、MongoDB、MySQL 等数据库时,真正让人抓狂的往往不是 SQL 写不对,而是驱动包这一步先翻车。你新建一个数据源,填好主机、端口、库名、账号密码,点 Test Connection,转圈半天弹出一句“Driver files are not downloaded”或者“No suitable driver found”。这不是玄学,是 DataGrip 的驱动管理机制在起作用:它默认只内置了极少数驱动,绝大多数数据库的 JDBC 驱动需要你在首次连接时手动下载,或者提前把 jar 包准备好。

这篇笔记面向的是日常要在多种数据库之间切换的开发者、数据分析师和运维同学。你可能同时维护着 MySQL 的业务库、Oracle 的历史库、MongoDB 的文档库,甚至还有 PostgreSQL、SQL Server、Redis。每换一台机器、每重装一次 IDE,驱动就要重新折腾一遍。把常用驱动包集合整理清楚,知道每个驱动从哪来、放哪、怎么配,能省下大量重复劳动。下面按“先搞懂机制,再动手配,最后避坑”的顺序讲透。

2. 先搞懂 DataGrip 的驱动管理机制:为什么不能直接复制 jar 就完事

2.1 驱动配置存在哪,和项目无关

DataGrip 的驱动配置是 IDE 级别的,不跟着项目走。它把驱动定义和下载的 jar 包放在用户配置目录下,Windows 一般在%APPDATA%\JetBrains\DataGrip<版本>\jdbc-drivers,macOS 在~/Library/Application Support/JetBrains/DataGrip<版本>/jdbc-drivers,Linux 在~/.config/JetBrains/DataGrip<版本>/jdbc-drivers。这个目录里按驱动名分子目录存放 jar,DataGrip 启动时扫描这些目录,把可用的驱动类注册进来。

理解这一点很关键:你在 A 机器上配好的驱动,不会自动同步到 B 机器,除非你手动拷贝整个jdbc-drivers目录,或者用 IDE 的配置同步功能。很多同学换了电脑发现连不上,就是因为驱动 jar 没跟过来。

2.2 内置驱动和自定义驱动的区别

DataGrip 对 MySQL、PostgreSQL 这类主流库内置了驱动定义,你点 Test Connection 时它会提示下载,下载完就能用。但 Oracle、MongoDB 这类,内置的要么版本旧,要么需要额外配置。Oracle 的 JDBC 驱动因为授权原因,DataGrip 不能直接帮你下载,必须你自己去 Oracle 官网拿ojdbc8.jar或ojdbc11.jar。MongoDB 更特殊,DataGrip 用的是 MongoDB JDBC 驱动,不是官方 MongoDB Java Driver,两者不是一回事,拿错了连不上。

自定义驱动的做法是:在 Database 工具窗口点+→ Driver,新建一个驱动定义,指定驱动类名和 jar 包路径。这样即使内置驱动不好用,你也能自己接管。

2.3 驱动类名和 URL 模板必须对得上

每个 JDBC 驱动都有一个主类名,DataGrip 靠它来加载。填错了就是ClassNotFoundException。常见对应关系如下:

数据库驱动类名URL 模板
MySQLcom.mysql.cj.jdbc.Driverjdbc:mysql://host:3306/db
Oracleoracle.jdbc.OracleDriverjdbc:oracle:thin:@host:1521/service
MongoDBcom.dbschema.MongoJdbcDriverjdbc:mongodb://host:27017/db
PostgreSQLorg.postgresql.Driverjdbc:postgresql://host:5432/db
SQL Servercom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://host:1433;databaseName=db

注意 MongoDB 那一行,类名是com.dbschema.MongoJdbcDriver,这是第三方 JDBC 桥接驱动,不是 MongoDB 官方的com.mongodb.MongoClient。很多人在这里踩坑,拿了官方 Java Driver 的 jar 放进去,DataGrip 根本不认。

3. 把常用驱动包一次性备齐:下载、存放与版本选择

3.1 各数据库驱动包的获取渠道

驱动包不要随便在网上找,来源不可靠的 jar 有安全风险。优先从官方或可信渠道拿:

  • MySQL:MySQL 官方提供mysql-connector-j,Maven 中央仓库也有,坐标com.mysql:mysql-connector-j。
  • Oracle:Oracle 官网的 JDBC 下载页,选对应 JDK 版本的ojdbc8.jar(JDK 8)或ojdbc11.jar(JDK 11+)。
  • MongoDB:DataGrip 内置的 MongoDB 驱动来自第三方 JDBC 桥接项目,通常在 DataGrip 首次连接时自动下载,也可以从 Maven 仓库找com.dbschema:MongoJdbcDriver。
  • PostgreSQL:org.postgresql:postgresql,Maven 中央仓库直接拿。
  • SQL Server:com.microsoft.sqlserver:mssql-jdbc。

如果你用 Maven 或 Gradle 管理项目,可以直接从本地仓库拷贝对应的 jar。没有构建工具的话,去 Maven 中央仓库网页搜坐标,下载 jar 文件即可。

3.2 统一存放目录,方便迁移

我一般会在用户目录下建一个jdbc-drivers文件夹,把所有常用 jar 集中放,然后在 DataGrip 里逐个驱动指向这个目录。这样换机器时整个文件夹拷走,重新指定路径就行,不用一个个重新下载。

# 在用户目录下创建统一驱动存放目录 mkdir -p ~/jdbc-drivers # 把下载好的 jar 包复制进去,按数据库命名方便识别 cp ~/Downloads/mysql-connector-j-8.0.33.jar ~/jdbc-drivers/ cp ~/Downloads/ojdbc8.jar ~/jdbc-drivers/ cp ~/Downloads/postgresql-42.6.0.jar ~/jdbc-drivers/ cp ~/Downloads/mssql-jdbc-12.4.2.jre11.jar ~/jdbc-drivers/ # 查看目录内容,确认文件都在 ls -lh ~/jdbc-drivers/

这段命令做三件事:建目录、拷 jar、列清单。-p保证目录已存在时不报错,-lh让文件大小可读。执行完你应该能看到几个 jar 文件,大小从几 MB 到十几 MB 不等。如果某个文件是 0 字节,说明下载失败,重新下。

3.3 版本选择:别盲目追新

驱动版本和数据库服务端版本、JDK 版本都有兼容关系。MySQL 8.x 服务端配mysql-connector-j8.x 驱动没问题,但如果你还在连 MySQL 5.7,用 8.x 驱动一般也能连,只是某些旧特性可能报错。Oracle 的ojdbc8对应 JDK 8,ojdbc11对应 JDK 11 及以上,DataGrip 自带的 JRE 版本决定了你能用哪个。MongoDB JDBC 驱动版本要和 MongoDB 服务端版本大致匹配,太旧的驱动连新服务端可能握手失败。

一个稳妥做法:先看 DataGrip 内置驱动推荐的版本,如果内置版本能用就别换。内置版本连不上时,再考虑手动换版本,每次只换一个变量,方便定位问题。

4. 在 DataGrip 里逐个配通:MySQL、Oracle、MongoDB 的实操步骤

4.1 MySQL:最顺滑的一个,但时区坑要提前填

MySQL 驱动是 DataGrip 内置支持最好的。新建数据源选 MySQL,填 Host、Port、Database、User、Password,如果驱动没下载,界面会提示 Download missing driver files,点一下等下载完即可。但很多人连上后执行select now()发现时间不对,这是时区参数没配。

-- 连接成功后先查时区设置 SHOW VARIABLES LIKE '%time_zone%'; -- 如果显示 SYSTEM 且和本地不一致,可以在驱动属性里加参数 -- 在 DataGrip 的 Advanced 标签页,找到 serverTimezone 或 connectionTimeZone -- 填入 Asia/Shanghai

MySQL 8.x 驱动默认用connectionTimeZone参数,旧版用serverTimezone。在 DataGrip 数据源配置的 Advanced 标签页里,找到对应属性填上。如果不想改驱动属性,也可以在 URL 里直接带:jdbc:mysql://host:3306/db?connectionTimeZone=Asia/Shanghai。改完重新 Test Connection,再查时区确认。

4.2 Oracle:手动指定 jar 包和驱动类

Oracle 是手动配置的典型。新建数据源选 Oracle,DataGrip 会提示你指定驱动文件。点 Driver 旁边的设置图标,进入驱动配置界面,在 Driver files 里点+,选你下载的ojdbc8.jar。然后确认 Class 是oracle.jdbc.OracleDriver。URL 模板填jdbc:oracle:thin:@host:1521/service_name,注意是 service name 不是 SID,除非你的库用的是 SID,那就换成jdbc:oracle:thin:@host:1521:SID。

# 验证 ojdbc8.jar 里的驱动类是否存在 unzip -l ~/jdbc-drivers/ojdbc8.jar | grep OracleDriver # 预期输出类似: # oracle/jdbc/OracleDriver.class

这个命令用unzip -l列出 jar 内容,grep过滤出驱动类。如果没输出,说明 jar 不对或者下载不完整。确认类存在后,在 DataGrip 里指定这个 jar,Test Connection 应该就能过。Oracle 连接慢是常态,第一次连可能要等十几秒,别急着判定失败。

4.3 MongoDB:用对 JDBC 桥接驱动

MongoDB 在 DataGrip 里走的是 JDBC 桥接方案。新建数据源选 MongoDB,DataGrip 会自动下载它需要的 JDBC 驱动。如果你手动配,驱动类名是com.dbschema.MongoJdbcDriver,jar 包名通常类似MongoJdbcDriver-5.x.jar。URL 格式是jdbc:mongodb://host:27017/db。

// 连接成功后,在 DataGrip 的查询控制台里可以这样查 // 注意 MongoDB 在 DataGrip 里用的是类 SQL 语法,不是原生 mongosh 语法 db.getCollection('users').find({ age: { $gt: 18 } }) // 或者用 SQL 风格 SELECT * FROM users WHERE age > 18

DataGrip 对 MongoDB 的支持是只读为主的,写入操作有限制。如果你需要完整的 MongoDB 操作能力,建议用专门的 MongoDB 客户端,DataGrip 适合做查询和浏览。这一点要提前有预期,别指望在 DataGrip 里跑复杂的聚合管道。

4.4 驱动配置的导出与迁移

配好一堆驱动后,可以把配置导出,换机器时导入。DataGrip 支持导出数据源配置:File → Export Settings,勾选 Database 相关项,导出成 zip。新机器上 File → Import Settings 导入。但注意,导出的配置里不包含驱动 jar 文件本身,jar 还是要手动拷过去,然后在驱动配置里重新指向路径。所以最稳的迁移方式是:拷jdbc-drivers目录 + 导出配置 + 导入后检查路径。

5. 避坑与排查:驱动连不上时先看这五条

5.1 报“No suitable driver found”但 jar 明明在

现象:驱动文件已经指定,Test Connection 还是报找不到驱动。原因通常是驱动类名填错,或者 jar 包版本和类名不匹配。比如 MySQL 旧驱动类名是com.mysql.jdbc.Driver,新驱动是com.mysql.cj.jdbc.Driver,填错就加载不了。解决:打开驱动配置界面,确认 Class 字段和 jar 包实际包含的类一致,用前面unzip -l的方法验证。

5.2 Oracle 连接报“ORA-12505”或“ORA-12514”

现象:网络能通,但连接被拒。原因:URL 里 service name 和 SID 用混了。ORA-12505 通常是 SID 不对,ORA-12514 是 service name 不对。解决:找 DBA 确认库用的是 SID 还是 service name,SID 用jdbc:oracle:thin:@host:1521:SID,service name 用jdbc:oracle:thin:@host:1521/service。不确定就两个都试,报错信息会告诉你哪个不对。

5.3 MongoDB 驱动下载卡住或超时

现象:首次连接 MongoDB 时,DataGrip 下载驱动进度条卡住。原因:网络到 Maven 仓库不稳定,或者代理设置有问题。解决:在 DataGrip 的 Settings → HTTP Proxy 里检查代理配置,或者手动下载 MongoDB JDBC 驱动 jar,在驱动配置里手动指定,跳过自动下载。手动指定后记得把驱动类名改成com.dbschema.MongoJdbcDriver。

5.4 驱动版本和 JDK 版本不兼容

现象:Test Connection 报UnsupportedClassVersionError。原因:驱动 jar 是用更高版本 JDK 编译的,DataGrip 内置 JRE 版本低,加载不了。解决:换用低版本 JDK 编译的驱动,比如 Oracle 从ojdbc11换ojdbc8,MySQL 换低版本 connector。或者升级 DataGrip 到自带更高 JRE 的版本。

5.5 多个驱动 jar 冲突

现象:之前能连的库,加了新驱动后突然连不上。原因:不同驱动 jar 里有同名类,类加载器加载了错误的版本。解决:在驱动配置里,每个驱动只保留自己需要的 jar,不要把一堆 jar 全塞进同一个驱动定义。DataGrip 的驱动配置是按驱动隔离的,别图省事混在一起。

6. 进阶:把驱动集合做成可复用的团队资产

一个人配驱动是小事,一个团队每人配一遍就是浪费。我后来习惯把常用驱动包和配置说明整理成一个内部仓库,新同学入职直接拉下来,按说明导入,十分钟搞定。具体做法是:建一个目录,放jdbc-drivers文件夹、一份README.md写清楚每个驱动的来源和版本、一份导出的 DataGrip 配置 zip。README 里重点写三件事:每个 jar 对应哪个数据库、驱动类名是什么、URL 模板长什么样。

# 团队驱动仓库的目录结构示例 jdbc-drivers-repo/ ├── README.md ├── drivers/ │ ├── mysql-connector-j-8.0.33.jar │ ├── ojdbc8.jar │ ├── postgresql-42.6.0.jar │ └── mssql-jdbc-12.4.2.jre11.jar └── datagrip-settings.zip

新同学拿到后,把drivers目录拷到本地,导入datagrip-settings.zip,然后在 DataGrip 里逐个检查驱动路径,把路径改成自己本地的drivers目录。这一步不能省,因为导出的配置里路径是写死的,换机器必须改。

验证驱动是否全部可用,可以写一个简单的检查清单:MySQL 执行select 1,Oracle 执行select 1 from dual,MongoDB 执行db.getCollectionNames(),PostgreSQL 执行select 1,SQL Server 执行select 1。每个都返回结果,说明驱动集合是完整的。

还有一个技巧:DataGrip 的驱动配置支持“复制驱动定义”。如果你已经配好一个 MySQL 驱动,想再建一个连不同环境的 MySQL,不用重新配驱动,直接复制数据源,改连接参数即可,驱动定义是共享的。这样团队里只需要维护一份驱动定义,多个数据源复用。

我自己的习惯是每季度检查一次驱动版本,看看有没有安全更新或兼容性修复。驱动这东西,能用就别乱动,但该更新时也别拖。上次一个 Oracle 驱动版本太旧,连新库时字符集处理有问题,查出来的中文全是问号,换了驱动才好。这种坑不遇到不知道,遇到了记下来,下次就能提前避开。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询