如何配置IntelliJ IDEA使MySQL数据源通过SSH代理并使用明文密码认证?
解决IntelliJ中SSH代理+明文密码连接MySQL的问题
我之前也踩过这个坑!在IntelliJ里用SSH代理连MySQL,还要明文传输密码,折腾了好半天终于搞定了,给你捋捋我亲测有效的步骤:
第一步:先确保SSH代理能正常连接
这是基础,要是SSH隧道不通,后面数据库连接肯定白搭:
- 打开IntelliJ的Database工具窗口,点击「+」选择MySQL数据源
- 切换到SSH选项卡,勾选「Use SSH tunnel」
- 填写SSH代理服务器的主机地址、端口、登录用户名和密码(如果用密钥登录就选密钥文件)
- 先点「Test SSH Connection」验证SSH连接是否成功,成功了再往下走
第二步:启用mysql_clear_password插件(核心步骤)
默认情况下MySQL驱动不会自动启用明文密码插件,得手动配置:
- 切回General选项卡,填写MySQL的内网地址(比如如果MySQL和SSH服务器在同一台机器,就填
localhost)、端口、数据库名、MySQL用户名 - 切换到Advanced选项卡,在搜索框输入
connectionProperties,点击右侧的编辑按钮 - 添加两个关键配置项:
- 键:
authenticationPlugins,值:com.mysql.jdbc.authentication.MysqlClearPasswordPlugin(如果你用的是MySQL 8.0+的驱动,要改成com.mysql.cj.jdbc.authentication.MysqlClearPasswordPlugin,注意带cj的版本) - 键:
allowPublicKeyRetrieval,值:true(这个必须开,不然明文密码传输会被拦截)
- 键:
- 嫌麻烦的话,也可以直接在General选项卡的「URL」里追加参数,比如:
jdbc:mysql://localhost:3306/your_db_name?authenticationPlugins=com.mysql.jdbc.authentication.MysqlClearPasswordPlugin&allowPublicKeyRetrieval=true - 最后点击「Test Connection」测试,应该就能连上了
容易踩的几个坑
- 驱动版本要匹配:MySQL 8.0+必须用8.x版本的驱动,老驱动和新插件不兼容
- MySQL用户权限:确保你的MySQL账号允许从SSH代理服务器的IP访问(测试阶段可以先给
%权限,也就是允许所有IP) - 防火墙设置:检查SSH服务器和MySQL服务器的防火墙有没有开放对应端口(SSH一般是22,MySQL是3306)
内容的提问来源于stack exchange,提问作者Ari Bustamante
相关产品推荐
相关产品推荐

