当前位置: 首页 > news >正文

本地通过隧道连接服务器的mysql

前言

服务器上部署了 mysql,本地希望能访问该 mysql,但是又不希望 mysql 直接暴露在公网上

那么可以通过隧道连接 ssh 端口的方式进行连接

从外网看,服务器只开放了一个 ssh 端口,并没有开放 3306 监听端口

设置本地免密登录

这个之前写过,有不清楚的可以看 这里

设置好之后,本地就不需要密码,直接 ssh root@xx.xx.xx.xx 登录到服务器了

建立隧道

本地使用以下命令,来通过 ssh 建立本地到服务器的一个连接通道,将本地的 33060 映射到服务器的 3306 端口

连接本地的 33060 端口,就相当于连接了服务器的 3306 端口

如果需要更详细的输出日志,可以增加 ssh 的参数 -v-vv-vvv,v 越多日志越详细

ssh -N -v -L 33060:127.0.0.1:3306 user@your_server_ip

建议不需要带 v 参数,都是 ssh 的日志,也没什么看的,不带 v 是没有日志输出的

但是因为 ssh 隧道极其不稳定,可以用 autossh 替代,使用上基本一致,增加 M 参数监控端口,会进行断开自动重连

autossh -M 5000 -N -v -L 33060:127.0.0.1:3306 user@your_server_ip

本地连接数据库

在上面隧道建立起来之后,运行 dbeaver,配置连接本地的 33060 端口

输入数据库的账号密码,点击测试连接显示已连接

最终配置

开始没留意,后来发现其实 dbeaver 中就已经实现了 ssh 的隧道功能,这样就不需要单独额外启动 ssh 隧道了

dbeaver 配置分两步,一是设置 ssh 的配置,一是设置 mysql 的配置

前提是本地的公钥已经配置到服务器的 authorized_keys 文件中了,也可以通过输入密码账号的方式连接 ssh

新建连接,在 “SSH” 的标签页上,认证方式使用公钥,并选择本地的私钥,配置好服务器地址以及端口信息

切换回到 “主要” 标签页,主机填 localhost,端口就是服务器的 3306 端口,输入账号密码,测试连接 OK

http://www.lryc.cn/news/538750.html

相关文章:

  • Hadoop 基础原理
  • JavaScript 任务队列详解:Event Loop、宏任务与微任务
  • VScode运行后出现黑窗口
  • 华为昇腾 910B 部署 DeepSeek-R1 蒸馏系列模型详细指南
  • vue3项目实践心得-多次渲染同一svg + 理解v-if、transition、dom加载之间的顺序
  • 【实战项目】BP神经网络识别人脸朝向----MATLAB实现
  • java数据结构_二叉树_5.5
  • Deepseek-R1推理模型API接入调用指南 ChatGPT Web Midjourney Proxy 开源项目接入Deepseek教程
  • 计算机网络(4)TCP断开
  • 科技云报到:科技普惠潮流渐起,“开源”将带我们走向何方?
  • 【论文笔记】On Generative Agents in Recommendation
  • 使用 Spring Boot 和 Canal 实现 MySQL 数据库同步
  • vue3 在element-plus表格使用render-header
  • 算法——结合实例了解Minimax算法(极小化极大算法)
  • 使用 DeepSeek 生成商城流程图
  • 什么是GraphQL?
  • Spring Boot 的约定优于配置,你的理解是什么?
  • C#开源大型商城系统之B2B2C+O2O一体化_OctShop
  • gitte远程仓库修改后,本地没有更新,本地与远程仓库不一致
  • 【对比】Pandas 和 Polars 的区别
  • el-input无法输入0.0001的小数,自动转换为0在vue3中的bug
  • Ubuntu 下 systemd 介绍
  • BERT文本分类(PyTorch和Transformers)畅用七个模型架构
  • 两步在 Vite 中配置 Tailwindcss
  • 【vmware虚拟机安装教程】
  • 文字转语音(三)FreeTTS实现
  • string类详解(上)
  • Visual Studio Code使用ai大模型编成
  • 外贸跨境订货系统流程设计、功能列表及源码输出
  • TraeAi上手体验