navicat SSH隧道连接不上Mysql

有小伙伴遇到Navicat中通过SSH能连接远程服务器, 但SSH服务器却连不上数据库的情况吧,我也是一脸懵逼,下面就来解决一下吧

出现问题

第一步:

注:这里是远程主机的用户名和密码哈

  第二步:切换到常规

 第三步:测试一下

### 如何在 Navicat 中设置和使用 SSH 隧道 Navicat 是一款功能强大的数据库管理工具,支持通过 SSH 隧道安全地连接远程数据库。以下是关于如何在 Navicat 中设置和使用 SSH 隧道的详细介绍。 #### 设置 SSH 隧道的一般流程 1. **创建新的 MySQL 数据库连接** 打开 Navicat 并点击“新建连接”,选择要连接的数据库类型(如 MySQL)。输入目标数据库的基本信息,例如主机名/IP 地址、端口、用户名和密码等[^4]。 2. **启用 SSH 隧道** 切换到“SSH”选项卡,在该页面中勾选“使用 SSH 隧道”。此时会显示额外的字段用于配置 SSH 参数[^5]。 3. **填写 SSH 主机信息** - **SSH 主机**: 输入能够访问互联网并允许建立 SSH 连接的目标服务器 IP 地址或域名。 - **SSH 端口**: 默认情况下为 `22`,如果更改过则需指定实际使用的端口号。 - **SSH 用户名**: 提供具有适当权限登录此服务器的有效账户名称。 4. **认证方式的选择** 可以采用两种主要方式进行身份验证: - **密码模式** 如果选择了基于密码的身份验证,则只需提供对应的用户密码即可完成授权过程。 - **密钥模式** 当前更推荐的方式是利用私钥文件来增强安全性。上传本地存储的 `.pem` 或其他格式的私钥文档,并确保其匹配公钥已部署至远端机器上[^1]。 5. **解决可能遇到的问题** 在某些场景下可能会遭遇诸如错误提示 `"Server does not support diffie-hellman-group1-sha1 for key exchange"` 的情况[^2]。这类问题是由于客户端与服务端之间就加密算法达成一致失败所引起。可以通过调整 CentOS 8 上 OpenSSH 服务的相关参数加以修复: ```bash sudo vi /etc/ssh/sshd_config # 添加以下两行内容于文件末尾处 KexAlgorithms +diffie-hellman-group1-sha1 Ciphers +aes128-cbc,aes192-cbc,aes256-cbc sudo systemctl reload sshd ``` 修改完成后记得重新加载或者启动 SSH 服务以便生效上述改动[^3]。 #### 示例代码片段展示 下面给出一段简单的 Python 脚本用来测试是否成功建立了通往特定地址的数据链路: ```python import pymysql connection = None try: connection = pymysql.connect( host='localhost', # 实际应替换为目标 DB 的真实地址 port=3306, user='your_username', password='your_password', database='test_db' ) with connection.cursor() as cursor: sql_query = 'SELECT VERSION();' cursor.execute(sql_query) result = cursor.fetchone() print(f'Database version: {result}') finally: if connection: connection.close() ``` 以上脚本假设已经借助 Navicat 完成了必要的网络穿透操作之后再执行查询动作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值