DBeaver中修改端口需明确区分数据库服务端口、SSH隧道端口和JDBC连接串端口:编辑连接时在“主要”页签改的是JDBC URL中的数据库服务端口(如达梦5236、ClickHouse HTTP 8123),SSH端口须填在“SSH”页签,且务必测试连接;若驱动URL模板硬编码端口,需在Driver Manager中修正为{port}占位符。

直接改就行,但得知道改的是哪一层的端口——数据库服务端口、SSH隧道端口、还是JDBC连接串里的端口,三者不能混。
编辑连接时改数据库服务端口
这是最常见需求:MySQL默认3306、PostgreSQL默认5432、达梦默认5236,但实际部署可能改了。DBeaver里改这个端口,本质是修改JDBC URL里的{port}部分。
- 右键已建连接 → “编辑连接” → 切到“主要”页签
- 找到“端口”输入框,填你数据库实际监听的端口(比如达梦改成
5236,ClickHouse HTTP接口填8123) - 务必点“测试连接”,否则改了也白改——DBeaver不会自动校验端口是否真通
- 注意:如果数据库在远程服务器上且走SSH隧道,这里的“主机”必须填
localhost或127.0.0.1,端口填数据库在那台服务器上监听的端口(不是SSH端口)
SSH隧道模式下改跳板机端口
当你勾选了“使用 SSH 隧道”,DBeaver会先连跳板机(SSH服务器),再从跳板机去连目标数据库。这时候有两个端口要区分清楚:
- SSH连接端口:填在“SSH”页签的“端口”里,通常是
22,但企业环境常改成非标端口如11701 - 数据库服务端口:仍填在“主要”页签,且必须是数据库在跳板机所在服务器上监听的端口(比如
5432) - 常见错误:把SSH端口误填进“主要”页签的端口框,结果报错“Connection refused”,其实是连错了地方
驱动URL模板里硬编码的端口怎么办
极少数情况,比如手动配置达梦驱动时,你可能在“URL Template”里写了jdbc:dm://{host}:{port}/{database},但某些老版本驱动模板里端口被写死成5236。这时:
- 进入
Database → Driver Manager,找到对应驱动(如DmDriver) - 切换到“URL Template”选项卡,确认模板是否含
{port}占位符;若写死了(如jdbc:dm://{host}:5236/{database}),就删掉数字,换成{port} - 保存后,所有用该驱动的新建连接才能自由填端口;已有连接需重新编辑才生效
云数据库或容器环境的端口陷阱
阿里云RDS、腾讯云CDB、Docker里的PostgreSQL,端口常被网络策略或映射规则隔离:
- 云数据库:安全组必须放行你填的端口(比如
5432),否则“测试连接”超时,不是DBeaver问题 - Docker:如果用
-p 5433:5432映射,DBeaver里填的端口是宿主机暴露的5433,不是容器内5432 - ClickHouse:HTTP接口是
8123,TCP二进制协议是9000,JDBC驱动默认走9000,但DBeaver社区版推荐用8123(更稳定),得在驱动高级参数里加useHTTP=true
最容易被忽略的是:改完端口不重启连接,或者没意识到“测试连接”只验证一次,后续查询失败可能是因为端口对了但认证方式或SSL没同步调好。

















