You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非root用户用DBeaver远程无密码连MariaDB失败,SSH可正常访问

解决DBeaver通过SSH隧道无密码连接MariaDB的问题

1. 确认服务器端的免密配置逻辑

你SSH登录服务器后能无密码访问MariaDB,一般是因为服务器用户目录下的~/.my.cnf(或~/.mariadb.cnf)配置了客户端免密参数。先登录服务器查看这个文件内容:

cat ~/.my.cnf

正常会包含类似配置:

[client]
user=你的数据库用户名
password=对应密码

但DBeaver通过SSH隧道连接时,不会自动读取服务器上的这个配置文件,需要手动在DBeaver里同步配置。

2. 在DBeaver中配置免密参数

打开已配置好SSH隧道的数据库连接窗口:

  • 切换到「连接设置」→「高级」标签页
  • 在「属性」列表中添加两个参数:
    • 键:user,值:你的数据库用户名
    • 键:password,值:对应密码
      或者直接在「主」标签页填写用户名和密码,DBeaver会自动将这些参数传递给数据库客户端。

3. 检查数据库用户的连接权限

确保你的数据库用户允许从localhost或127.0.0.1连接(SSH隧道相当于本地连接服务器的数据库):

  • 登录服务器的MariaDB,执行命令查看用户权限:
    SELECT user, host FROM mysql.user WHERE user='你的用户名';
    
    如果用户的host是localhost/127.0.0.1,符合隧道连接场景;如果是特定IP,要么调整用户权限,要么确认隧道的本地映射端口匹配:
    GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost';
    FLUSH PRIVILEGES;
    

4. 验证SSH隧道的连通性

先手动用命令行测试,排除DBeaver的配置问题:

  • 本地终端执行SSH隧道命令:
    ssh -L 3306:localhost:3306 你的服务器用户名@服务器IP
    
  • 新开终端用本地MySQL客户端连接:
    mysql -u 你的数据库用户名
    
    如果这里需要密码,说明服务器端的免密配置仅对特定用户生效(比如服务器的root用户),需要给你的数据库用户配置对应免密;如果能无密码登录,回到DBeaver检查参数是否填写正确。

内容的提问来源于stack exchange,提问作者Francisco Cortes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:12:09