记录主机体验,分享建站经验RSS 订阅 ↗

Ubuntu安装MySQL Workbench:APT与SSH连VPS教程

本机 Workbench 通过 SSH 隧道访问 VPS 本地 MySQL 的连接关系

最重要的一步:把 MySQL Workbench 安装在你自己的 Ubuntu 桌面机上,而不是默认安装在没有图形环境的 VPS 上。 Workbench 是图形化客户端;VPS 上运行 MySQL Server,通过 SSH 隧道管理,比直接向公网暴露 3306 端口更符合最小暴露原则。

本文以 Ubuntu Desktop 22.04/24.04/26.04 LTS x86_64 和远程 Ubuntu VPS 作为解释对象;官方包是否提供、能否安装,仍取决于你实际的发行版、架构与仓库,下文有逐步检查。资料核对:2026-10-29。

本机 Workbench 通过 SSH 隧道访问 VPS 本地 MySQL 的连接关系

1. 先确认安装位置:Desktop 还是 VPS?

你手头的环境 应采用的方案 为什么
自己的 Ubuntu Desktop、有图形界面 本机装 Workbench,SSH 连接 VPS 客户端与生产数据库分离
Ubuntu Server,仅 SSH VPS 只装 MySQL Server,Workbench 放本机 不用为管理数据库额外装整套桌面服务
Ubuntu ARM 或精简容器 先查官方二进制支持;考虑兼容客户端 Workbench 支持的平台与 MySQL Server 不完全相同
需要从 CI/CD 管理数据库 用命令行、迁移工具和最小权限账户 不把 Workbench GUI 硬塞进自动化流水线

Oracle Workbench 支持平台清单列出上述 Ubuntu LTS 的 x86_64;它不等于宣布所有 CPU 架构都有同款官方构建。先在准备运行 Workbench 的桌面查看:

cat /etc/os-release | grep -E '^(NAME|VERSION|VERSION_CODENAME)='
uname -m
printf 'Desktop session: %s\n' "${XDG_CURRENT_DESKTOP:-not-detected}"

如果看到 aarch64、没有桌面会话或版本不被支持,不要强行用其他 Ubuntu 版本的 .deb 凑依赖。

2. 安装前先检查仓库,避免“包不存在”

Workbench 常见包名有两类:Oracle 官方仓库通常为 mysql-workbench-community,发行版自行维护的包通常为 mysql-workbench。Ubuntu 不同发行版的软件源是否有后者可能不同,不能网上复制一条 apt install mysql-workbench 就假设所有版本都成功。这个区别来自 Oracle Linux 安装文档。

sudo apt update
apt-cache policy mysql-workbench mysql-workbench-community
apt search '^mysql-workbench'

若已有可信仓库提供的候选版本,可以先核对版本和维护来源;若没有候选版本,推荐使用 Oracle 的官方 APT 安装流程,不要依赖不明 PPA 或下载站提供的第三方二进制包。

3. 使用 Oracle 官方 MySQL APT 仓库(示例)

  1. 打开 MySQL APT Repository 官方下载,选择适合你系统的 mysql-apt-config_..._all.deb,优先按网页提供的 GPG/签名说明检查文件。
  2. 在下载目录确认文件名。下例的通配符仅供本目录恰好只有一个官方安装包时使用;存在多个文件时请改为精确文件名。
  3. 安装仓库配置包后查看候选版本,确认系统 codename 与产品可用性,再安装。
cd ~/Downloads
ls -l mysql-apt-config_*_all.deb
sudo dpkg -i ./mysql-apt-config_*_all.deb
sudo apt update
apt-cache policy mysql-workbench-community
sudo apt install mysql-workbench-community

如果第三条命令提示找不到包:停止,不要将 Ubuntu 24.04 的下载物手工强制装到别的版本。 核对 /etc/apt/sources.list.d/ 下 Oracle 源配置、APT 签名、系统版本与实际仓库列表。Oracle APT 下载页明确 MySQL Workbench 的 APT 支持面向 Ubuntu;官方 Linux 安装说明给出具体包类型。

启动应用可在桌面程序菜单找 MySQL Workbench,或尝试:

mysql-workbench

如果提示缺少 GUI 库、启动闪退或 Display 错误,请先确认当前是实际桌面会话;不要因此在公网 VPS 上开放图形远程登录。

4. 在 VPS 上验证 MySQL 与网络安全边界

以下命令都只能在你拥有管理权限的 VPS 上执行。 先检查 MySQL 是否存在、是否本机监听(只读诊断):

sudo systemctl status mysql --no-pager
sudo ss -lntp | grep ':3306' || true
sudo mysql -e 'SELECT VERSION();'  # 适用于配置了本地管理员 socket 登录的环境

目标架构应为 公网 → 22/TCP SSH → VPS本地 127.0.0.1:3306,而不是 公网 → 3306/TCP。如果现有业务需要从其他内网 IP 访问数据库,不能直接把 MySQL 全局 bind-address 改成 127.0.0.1,以免切断现有服务;应由管理员先梳理现有数据库调用关系,再决定监听与防火墙策略。

创建只读数据库账户:先理解 MySQL 用户与 host 的组合

不要拿 root 账号给 Workbench 长期使用。下面仅为有权限的数据库管理员在自己的 MySQL 实例上执行的示例,并假设 SSH 隧道最终以本机 TCP 访问 127.0.0.1:3306;MySQL 对 localhost/127.0.0.1 的账户匹配与 DNS 解析因配置而异,最终用 CURRENT_USER() 判断实际匹配项。

-- 示例:数据库名 appdb;用安全管理工具生成强密码,勿照抄占位符
CREATE USER 'wb_read'@'127.0.0.1' IDENTIFIED BY 'REPLACE_WITH_LONG_RANDOM_PASSWORD';
GRANT SELECT, SHOW VIEW ON appdb.* TO 'wb_read'@'127.0.0.1';
-- 从真实连接会话中检查:SELECT USER(), CURRENT_USER();

假如连接产生 Access denied for user 'wb_read'@'localhost',不要直接改成 '%' 放开来源;先检查 SELECT USER(),CURRENT_USER()、MySQL skip_name_resolve 设置与本地用户条目。生产库更应为 Workbench 单独设置只读/按需授权、凭据管理和审计。参考 Oracle 的 CREATE USER 与 Workbench SSH 连接文档。

5. Workbench 内置 SSH 连接:按字段填,不要搞反两个账号

打开 Workbench → 新建连接(+)→ Connection Method 选 Standard TCP/IP over SSH:

Workbench 字段 典型填写方式 实际含义
SSH Hostname vps.example.com:22 VPS 的 SSH 地址与端口,不是数据库端口
SSH Username opsuser 可以进入 VPS 的 SSH 用户;通常不是 MySQL 用户
SSH Key File /home/你的用户名/.ssh/id_ed25519 用你本机私钥的绝对路径,首次需核对远端指纹
MySQL Hostname 127.0.0.1 从 VPS 侧看的 MySQL 监听地址
MySQL Server Port 3306 VPS 的数据库端口;不是本地 SSH 端口
Username wb_read MySQL 数据库账户,独立于 SSH Username

点击 Test Connection。常见失败须分两层排查:SSH 本身能否建立?SSH 成功后 VPS 是否能经本地 TCP 连到 MySQL? 密钥报错不要删除整份 known_hosts 绕过变更警告;先核实主机指纹。

6. 不用 Workbench 的情况下,先手工测试 SSH 转发

如果 Workbench 内置连接报错,可先从自己的 Ubuntu Desktop 上开一个不允许外部访问的本地监听来排查;这个方式不要求开放公网 3306:

# 在你自己的 Desktop 上执行;会持续占用终端,Ctrl+C 即关闭
ssh -N -L 127.0.0.1:13306:127.0.0.1:3306 [email protected]

然后在本机另一个终端,若已安装 MySQL CLI:

mysql --protocol=TCP -h 127.0.0.1 -P 13306 -u wb_read -p \
  -e 'SELECT VERSION(), USER(), CURRENT_USER();'

此时 Workbench 也可直接选择 Standard TCP/IP,Host 127.0.0.1,Port 13306,使用刚建立的手工 SSH 隧道。内置 SSH 隧道与手工转发二选一,不要不小心套两层把端口配错。测试后关闭终端隧道,确认本机 13306 端口不再开放。

用错误信息判断问题层级

报错 优先查什么 不应该做什么
Unable to locate package apt-cache policy、APT 源、架构 网上乱加未知 PPA
Public key authentication failed SSH 用户、私钥路径/权限、远端公钥、指纹 直接关闭 SSH 主机检查
Can't connect to MySQL server ... (111) SSH 是否成功、VPS MySQL 是否监听、端口是否正确 向全网放开 3306
Access denied for user ... MySQL 的 user@host、密码与权限 直接授予 root/ALL PRIVILEGES
连接成功但不能看到某库 账户仅有部分 schema 授权 认为 Workbench 故障而随意加权
Workbench GUI 启动错误 本机桌面会话、库依赖、版本 为无 GUI VPS 加装完整桌面

7. 三个容易遗漏的安全与运维问题

  1. SSH 隧道不是备份。 Workbench 的 Export 功能和在线备份/主从复制并非同一个概念。生产数据必须有可恢复的备份、版本检查和恢复演练。
  2. Workbench 对 MariaDB 不作完整兼容承诺。 如果 VPS 使用 MariaDB,应先确认相关 SQL、认证插件与管理功能,避免把 MySQL 工具的差异当服务器故障。
  3. 生产账号使用最小权限。 数据库用户与 SSH 用户分别最小授权,定期审计、限制来源、记录变更;不要因一次管理需求暴露公网 3306。

官方参考:Workbench Ubuntu 平台 · Oracle Linux 安装方法 · 官方 APT 下载 · Workbench SSH 连接 · CREATE USER。

交流与讨论

留下你的看法

邮箱不会公开。带 * 的项目为必填项。