操作教程|MySQL数据库在JumpServer中的纳管与连接指南

发布于 2025年11月19日

本教程主要介绍在JumpServer V4版本中纳管MySQL数据库和托管信息查询(例如账号密码、端口)的方法,MySQL资产连接方式与特点对比,MySQL数据库资产连接常见报错的处理与排查思路,以及最佳实践建议。

MySQL是一款开源关系型数据库管理系统,它利用结构化查询语言(SQL)来存储、检索和管理数据。JumpServer开源堡垒机支持对MySQL数据库的纳管与连接。

一、MySQL 数据库纳管流程(基于JumpServer标准功能)

1. 前提条件

■ 已经部署JumpServer社区版或者企业版(建议部署V4版本);

■ 待纳管的MySQL数据库实例网络可达,且拥有至少一个可访问MySQL数据库的账号(例如Root账号)。

2. 纳管步骤

首先是添加资产。登录JumpServer控制台,依次选择“资产列表”→“数据库 ”→“创建”,在平台类型中选择“MySQL”,填写基本信息如下:

■ 名称:建议使用“业务名-MySQL-环境”的格式;

■ 地址:MySQL实例的IP地址或者域名;

■ 平台:默认为MySQL;

■ 节点:选择属于自己的节点;

■ 默认数据库:填写自己要使用的数据库(连接之后的第一个库,连接上后仍可切换);

■ 协议组:默认为mysql 3306;

■ 安全:支持SSL/TLS(可选)。

接下来添加数据库资产账号。在资产列表中新增账号,填写信息如下,然后点击“确认”按钮。

■ 名称:自定义名称;

■ 用户名:MySQL登录账号(例如Root或专用管理账号);

■ 特权账号:根据实际需求勾选(建议用于管理场景);

■ 密码:对应的账号密码。

然后进行资产授权。在JumpServer中选择“资产授权”→“创建”,填写该资产授权名称,并进行设置,设置有效期后点击“提交”按钮。相关设置信息如下:

■ 资产/节点:已添加的MySQL资产/ 已添加的MySQL资产所在的节点;

■ 用户/用户组:需要授权访问的JumpServer用户;

■ 账号:所有账号/指定账号/虚拟账号/无;

■ 协议组:全部协议/指定协议;

■ 动作:全部/连接/文件传输/剪贴板/分享。

二、托管信息查询方法

在JumpServer控制台可以查询资产基本信息,在JumpServer左侧菜单选择“资产列表”选项,点击对应MySQL资产名称,可以获取IP地址、端口、资产编号、所属节点等信息。

资产账号密码查询的方法为:在JumpServer依次选择“资产列表”→对应SQL资产名称→账号,可以查看该资产的所有被纳管的系统账号用户名,点击“查看”按钮可以查看密码。注意:密码默认隐藏,需要具有管理员权限且开启MFA才能查看和重置。

三、MySQL资产连接方式及特点对比

Web控制台CLI连接:控制台→资产→选择MySQL资产,依次点击“连接”→“Web”→“Web CLI”。

Web控制台GUI连接:控制台→资产→选择MySQL资产,依次点击“连接”→“Web”→“Web GUI”。

客户端工具连接(基于数据库客户端,JumpServer企业版支持):在JumpServer的资产详情页点击“连接”→“客户端”→“数据库客户端”,下载并导入连接配置,使用MySQL Workbench或Navicat等工具导入配置。

客户端工具连接(基于DB连接向导,JumpServer企业版支持):在JumpServer的资产详情页点击“连接”→“客户端”→“DB连接向导”后,可以有两种方式进行连接。

方法一:在命令行终端中安装相应的数据库客户端(如MySQL客户端),并执行复制的命令来连接数据库;

方法二:使用数据库管理工具(例如Navicat、SQLyog等),将JumpServer提供的加密信息复制到连接参数中,进行数据库连接。

远程应用连接(以DBeaver为例,部分应用需要JumpServer企业版支持):首先给对应发布机部署远程应用,然后在JumpServer资产详情页点击“连接”→“远程应用”→“DBeaver”。

虚拟应用连接(以DBeaver为例,仅JumpServer企业版支持):在JumpServer中启用并上传虚拟应用,然后在JumpServer资产详情页点击“连接”→“虚拟应用”→“DBeaver”。

四、常见报错的处理与排查思路

1. 网络不通(连接拒绝)

现象:连接尝试后长时间无响应,最终提示超时。

排查步骤

① 检查网络连通性:ping <mysql-ip> / telnet <mysql-ip> <port>;

② 确认MySQL服务是否正常运行;

③ 检查防火墙规则:确保JumpServer与MySQL之间的端口开放,如果是公有云上数据库还需要确认安全组是否放行MySQL服务端口;

④ 查看MySQL配置:是否允许远程连接(bind-address)。

2. 提示连接数过多(Too many connections)

现象:无法正常连接数据库,后端日志报错“too many connections”。

排查步骤:

① 查看MySQL配置文件(通常是my.cnf或my.ini),找到max_connections参数,确认其设置值是否过小;

② 优化应用:检查是否有应用异常占用大量连接,或者连接没有正确关闭。优化应用逻辑,确保连接被有效管理和释放;

③ 考虑连接池:如果应用频繁连接和断开数据库,考虑使用连接池技术来管理数据库连接;

④ 重启MySQL服务:修改配置后,需要重启MySQL服务以使配置生效。

3. 权限不足(Permission denied)

现象:连接成功但执行操作时提示权限不足。

排查步骤:

① 检查JumpServer授权的系统用户权限范围;

② 在MySQL中检查账号实际权限,确认是否需要提升权限或创建专用角色。

4. 数据库用户名密码错误

现象:连接时MySQL报错:error: Error 1045 (28000): Access denied for user 'root'@'xx.xx.xx.xx' (using password: YES)

排查步骤:

① 检查数据库登录账号的密码是否正确;

② 在“资产列表”→“指定数据库资产”→“报错账号”中更新密文,更新后点击账号进行测试,待测试成功后重新访问MySQL即可。

5. MySQL服务器启用SSL但未配置

现象:连接时MySQL报错:error: Error 3159 (HY000): Connections using insecure transport are prohibited while --require_secure_transport=ON.

排查步骤:

① 如果不希望启用SSL,可以登录MySQL所在服务器,在/etc/mysql/my.cnf中查看require_secure_transport是否为“ON”,如果为“ON”可以先注释掉并重启MySQL服务;

② 如果需要配置完整的SSL连接信息,可以选择“资产列表”→“MySQL数据库”→“更新”→“使用SSL/TLS”,配置相关的证书密钥即可。

6. 使用客户端方式(数据库客户端)连接MySQL无响应

现象:使用客户端方式(数据库客户端)连接MySQL资产时无响应。

排查步骤:

① 首先排查当前网络环境是否正常,其他连接方式(例如Web方式/客户端DB向导方式/远程应用方式/虚拟应用方式)是否能正常连接到数据库,是否存在无响应的情况;

② 连接无响应说明本地已经安装了JumpServer客户端,只是未能基于此客户端成功拉起本地的客户端应用。因此可以优先打开本地的JumpServer客户端,找到数据库配置,查看应用路径是否正确(可以直接打开数据库客户端应用查看应用路径是否正确)。

7. 使用远程应用方式连接MySQL报错(Core APl发生错误)

现象:使用远程应用方式连接MySQL资产时报错“Core APl”发生错误:connect APl core err: No host account available, please check the applet, host and account”。

排查步骤:

这种报错通常是远程应用发布机出现故障(例如发布机处于离线状态、Tinker组件异常、远程应用发布失败等),因此解决思路为重新部署远程应用发布机以及远程应用(例如DBeaver),直至发布机负载状态为正常后尝试重新连接MySQL资产即可。

五、最佳实践建议

账号管理

■ 为不同角色创建专用MySQL账号(管理员、开发、只读);

■ 定期通过JumpServer轮换数据库密码(建议90天一次)。

安全配置

■ 禁用MySQL Root账号直接通过JumpServer访问;

■ 启用连接审计机制,保留至少180天的审计日志;

■ 限制JumpServer访问源IP地址,仅允许特定服务器连接。

性能优化

■ 为频繁访问的MySQL资产配置连接池;

■ 大查询操作建议在非业务高峰期执行,并通过客户端工具进行连接。

灾备方案

■ 定期备份JumpServer中的资产配置和授权信息;

■ 建立连接失败的应急处理流程,确保关键操作不受影响。

通过以上流程和规范,可以实现MySQL数据库在JumpServer中安全、高效的纳管与连接,有效满足企业级运维的安全性和可审计性要求。