从数据库部署到异地运维:MariaDB监控与远程访问实战

发布时间:2026/9/15 6:35:36

从数据库部署到异地运维:MariaDB监控与远程访问实战 前言MariaDB安装在公司服务器或家庭实验环境中时本地使用通常没有问题。真正遇到故障或临时协作时限制才会显现出来人在外地看不到数据库运行状态同事也无法直接连接内网中的3306端口。远程运维不仅需要解决“能不能连接”还需要提前知道数据库是否健康。连接数是否接近上限、查询状态有没有异常、复制是否中断仅靠临时登录和查看日志很难形成连续判断。本文会先在Debian 12中安装MariaDB完成服务启动、安全初始化、数据库与用户创建等基础操作再部署mysqld_exporter通过专用监控账号读取MariaDB运行指标。Exporter在9105端口正常输出指标后会将它加入Prometheus采集配置形成数据库服务、指标暴露与集中监控之间的基本链路。最后还会安装 cpolar把MariaDB的3306端口映射为公网TCP地址并进一步配置固定端口。这样在经过授权的前提下可以从家中或出差途中使用MySQL客户端连接内网数据库。1.配置前提条件在正式开始安装和配置MariaDB之前请确保您已做好以下准备工作以保障后续操作顺利进行一台运行Debian 12的操作系统环境该服务器应已成功安装并正常启动且能够稳定接入互联网以便下载官方软件包及依赖项。具备管理员权限的用户账户您需要拥有一个具有sudo权限的非root用户账户。可交互的命令行终端无论是通过SSH远程连接还是在物理机/虚拟机上本地登录您都需要打开一个终端窗口用于执行后续的命令行操作。一款熟悉的文本编辑器在配置MariaDB的过程中您可能需要编辑配置文件如 /etc/mysql/mariadb.conf.d/50-server.cnf。请确保系统中已安装并熟悉至少一种命令行文本编辑器例如轻量级的nano、功能强大的vim或其他您习惯使用的编辑工具。小贴士建议在操作前更新系统软件包列表sudo apt update以确保安装的是最新稳定版本的MariaDB并减少潜在的兼容性问题。完成以上准备后您就已为MariaDB的安装、安全加固与初始化配置打下了坚实基础。2.安装MariaDB2.1系统升级始终建议在安装之前安装最新的系统软件包以避免依赖性问题。运行以下命令sudoaptupdatesudoaptupgrade-y2.2 安装所需的软件包接下来安装必要的软件包如下所示sudoaptinstallcurlsoftware-properties-common dirmngr-y2.3 添加MariaDB APT存储库分别运行以下命令导入MariaDB签名密钥并添加MariaDB APT存储库:curl-LsS-Ohttps://downloads.mariadb.com/MariaDB/mariadb_repo_setupsudobashmariadb_repo_setup --mariadb-server-version10.62.4 在Debian上安装MariaDB接下来更新软件包并安装MariaDB服务器sudoaptupdatesudoaptinstallmariadb-server mariadb-client2.5 启动并启用MariaDB现在运行以下命令来启动 MariaDB 并使其在系统重新启动时自动启动sudosystemctl start mariadbsudosystemctlenablemariadbsudosystemctl status mariadb2.6 安全的MariaDB安装成功安装MariaDB后请按如下所示继续保护它2.7 检查MariaDB版本要检查MariaDB版本我们需要登录MariaDB如下所示。如果您设置了root密码请使用-p。mysql-uroot-p然后运行以下MySQL命令来检查MariaDB版本:SELECT VERSION();2.8 MariaDB基本命令MariaDB创建数据库CREATE DATABASE shan;MariaDB添加用户并授予权限CREATEUSERmyuserlocalhostIDENTIFIED BYmypassword;GRANT ALL PRIVILEGES ON *.* TOmyuserlocalhostIDENTIFIED BYmypassword;GRANT ALL PRIVILEGES ON *.* TOmyuserlocalhost;FLUSH privileges;SHOW GRANTS FORmyuserlocahost;创建表并添加数据MariaDB创建数据库后您可以创建表并向其中添加数据。CREATE TABLE shan(id INT, name VARCHAR(20), email VARCHAR(20));INSERT INTO shan(id,name,email)VALUES(01,lorna,[email]);MariaDB清理要完全删除MariaDB请运行以下命令。sudoaptpurge mariadb-serversudorm-rf/var/lib/mysql/3.使用mysql_exporter监控MariaDB3.1 为什么用mysqld_exporter监控MariaDB因为它是“用一套工具监控两个世界”的典范。兼容性好MariaDB ≈ MySQL协议功能全面覆盖性能、连接、复制、资源等核心维度生态成熟Prometheus Grafana开箱即用官方认可MariaDB社区明确推荐因此无需寻找“MariaDB Exporter”——直接使用mysqld_exporter就是最优解。3.2 安装mysql_exporter在prometheus的官网下载对应的mysql_exporter的linux版本下载完成后上传到/app目录下也可以使用这个命令一键安装可自定义版本wgethttps://github.com/prometheus/mysqld_exporter/releases/download/v0.18.0/mysqld_exporter-0.18.0.linux-amd64.tar.gz解压mysql_exporter压缩文件tar-zxvfmysqld_exporter-0.18.0.linux-amd64.tar.gz修改mysql_exporter文件名mvmysqld_exporter-0.18.0.linux-amd64/ mysqld_exporter3.3 启动mysql_exporter创建mysql用户与权限在MySQL数据库中创建一个专门用于监控的用户并赋予其足够的权限来查询所需的信息GRANT REPLICATION CLIENT, PROCESS ON *.* TOmysqld_exporterlocalhostidentified by12345678;GRANT SELECT ON performance_schema.* TOmysqld_exporterlocalhost;flush privileges;创建一个文件输入我们刚创建好的用户名及密码vilocalhost_db.cnf[client]userexporterpassword12345678创建mysql_exporter服务vi/etc/systemd/system/mysqld_exporter.service[Unit]DescriptionexporterAfternetwork.target[Service]TypesimpleUserprometheusExecStart/app/mysqld_exporter/mysqld_exporter --config.my-cnf/app/mysqld_exporter/localhost_db.cnf --web.listen-address:9105Restarton-failure[Install]WantedBymulti-user.target添加prometheus用户并修改对应权限sudouseradd--system--no-create-home--shell/sbin/nologin prometheussudochown-Rprometheus:prometheus /app/mysqld_exporter/sudochmod600/app/mysqld_exporter/localhost_db.cnf启动服务并设置开机自启动sudosystemctl daemon-reloadsudosystemctl start mysqld_exportersudosystemctl status mysqld_exporter# 查看是否成功sudosystemctlenablemysqld_exporter# 设置开机自启可选4.配置prometheus监控mysql_exporter没有prometheus的小伙伴可以参考cpolar官网这篇文章《监控不再局域网Cpolar 让 Prometheus 走出内网限制》找到prometheus的配置文件编辑添加如下内容viprometheus.yml- targets:[ip:9105]labels: app:mysqld_exporter重启prometheus服务:systemctl restart prometheus使用浏览器Ip9090打开promethues的页面我们可以看到成功的检测到了mysql_exporter服务啦现在我们已经成功完成了MariaDB的安装并通过mysqld_exporter与Prometheus构建了一套完整的数据库监控体系能够实时掌握连接数、查询性能、主从状态等关键指标。然而在实际工作中我们常常面临一个现实需求如何从外部网络比如家里、出差途中安全地连接到公司内网的MariaDB数据库由于公司服务器通常部署在私有网络中没有公网IP且出于安全考虑防火墙不会直接开放3306端口给互联网——这就导致传统的远程连接方式行不通。这时候就轮到Cpolar闪亮登场了借助Cpolar的内网穿透能力我们可以在不改动现有网络架构、无需申请公网IP、不必开放防火墙端口的前提下建立一条加密、可靠、带身份认证的隧道将公司内网的MariaDB服务安全地映射到一个公网可访问的地址。这样一来无论你身处何地只要拥有授权就能像访问本地服务一样安全连接到公司的数据库——真正实现“内网数据库远程随心连”。接下来我们就来演示如何用Cpolar安全打通这条连接通道。5.安装cpolar实现随时随地开发5.1 什么是cpolarcpolar是一款安全高效的内网穿透工具无需公网IP或复杂配置只需一条命令即可将本地服务器、Web服务或任意端口映射到公网让你随时随地远程访问内网应用特别适合开发调试、远程运维和应急部署等场景。5.2 部署cpolarcpolar 可以将你本地电脑中的服务如 SSH、Web、数据库映射到公网。即使你在家里或外出时也可以通过公网地址连接回本地运行的开发环境。❤️以下是安装cpolar步骤使用一键脚本安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可打开浏览器访问本地9200端口使用cpolar账户密码登录即可,登录后即可对隧道进行管理。6.配置公网地址通过配置你可以在本地WSL或Linux系统上运行SSH服务并通过Cpolar将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:MariaDB注意不要与已有的隧道名称重复协议tcp本地地址3306端口类型随机临时TCP端口地区China Top创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型2.tcp.cpolar.top是Cpolar提供的域名15969是随机分配的公网端口号通过Cpolar提供的公网地址和端口MariaDB就可以从任意一台主机连接到啦mysql-h2.tcp.cpolar.top-P15969-uremote_user-p7.保留固定TCP公网地址使用cpolar为其配置TCP地址该地址为固定地址不会随机变化。选择区域和描述有一个下拉菜单当前选择的是“China Top”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。地区显示为“China Top”。地址显示为“8.tcp.cpolar.top:11849”。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道mysql点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。最后测试一下固定的地址是否好用测试命令mysql-h8.tcp.cpolar.top-P11849-uremote_user-p这样我们成功打破了“没有公网IP就无法远程访问数据库”的固有认知。总结MariaDB安装在公司服务器或家庭实验环境中时本地使用通常没有问题。真正遇到故障或临时协作时限制才会显现出来人在外地看不到数据库运行状态同事也无法直接连接内网中的3306端口。远程运维不仅需要解决“能不能连接”还需要提前知道数据库是否健康。连接数是否接近上限、查询状态有没有异常、复制是否中断仅靠临时登录和查看日志很难形成连续判断。本文会先在Debian 12中安装MariaDB完成服务启动、安全初始化、数据库与用户创建等基础操作再部署mysqld_exporter通过专用监控账号读取MariaDB运行指标。Exporter在9105端口正常输出指标后会将它加入Prometheus采集配置形成数据库服务、指标暴露与集中监控之间的基本链路。最后还会安装 cpolar把MariaDB的3306端口映射为公网TCP地址并进一步配置固定端口。这样在经过授权的前提下可以从家中或出差途中使用MySQL客户端连接内网数据库。
延伸阅读

更多相关文章

2026/9/8 10:38:41

复旦微FM33国产MCU开发环境配置:VS Code+GCC+OpenOCD实战指南

1. 项目概述:为什么国产MCU的环境配置值得单独写一篇笔记?最近几年,但凡做过嵌入式开发的工程师,手头项目或多或少都开始接触国产MCU。从早期的“能用就行”,到现在的“追求性价比和供应链安全”,国产芯片的…

2026/9/14 3:32:04

安卓手机安装Kali Linux:Termux+Proot打造移动安全测试环境

1. 项目概述:为什么要在手机上运行Kali?几年前,当我第一次尝试在备用安卓手机上折腾Kali Linux时,身边不少朋友都觉得这想法有点“极客”过头了。一部手机,巴掌大的屏幕,能跑得动那个以强大闻名的渗透测试系…

2026/9/12 21:43:11

从零构建高并发OJ编译服务器:C++代码沙箱与资源隔离实战

1. 项目概述与核心价值最近在社区里看到不少朋友在讨论如何构建一个在线判题系统(Online Judge, OJ),尤其是涉及到C代码的编译与运行服务。这让我想起了几年前我们团队从零开始搭建一个高并发、高可用的负载均衡OJ后端时,在compil…

2026/9/15 6:31:37

MacBook Air M5:面向开发者重构的ARM原生开发环境

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 6:31:37

毕业设计效率提升指南:从工具选择到论文收尾的全流程实践

1. 引言:毕业设计中的效率困境 在毕业设计的过程中,我们常常会遇到各种各样的挑战,从代码管理到文档整理,每一个环节都可能成为时间的消耗者。很多同学在项目初期信心满满,却在中期被反复的格式调整、版本混乱和协作沟…

2026/9/15 6:31:37

神马 AI 系统架构解析:第四代 AI 招聘平台是怎么炼成的?

2026年是招聘行业AI架构全面迭代的关键年份,传统关键词匹配招聘模式弊端持续凸显,错配岗位、虚假岗位、僵尸岗位成为求职与招聘的普遍痛点。结合各平台公开披露数据来看,招聘垂直领域微调的神马AI模型,通过四层架构体系、知识图谱…

2026/9/15 6:31:37

Agent Skills实战:从npx安装到多平台部署的完整拆解

从“复制粘贴提示词”到“一条命令装技能”,这个过程我用了大概半年才彻底想明白。最近在做 Agent Skills 多平台应用实战的收尾工作,拿到npx skills add sandai-org/vidmuse-skills --agent claude-code -g -y这条命令时,我突然意识到&#…

2026/9/15 6:31:37

NPM供应链攻击原理与防御实战指南

1. NPM供应链攻击事件深度解析2023年爆发的这场针对NPM生态系统的供应链攻击,堪称近年来影响范围最广的开源软件安全事件之一。攻击者精心设计了能够自我传播的恶意软件,通过187个被污染的软件包形成连锁感染,最终导致大量开发者的开发环境沦…

2026/9/15 6:26:37

SSA优化CNN的多变量预测模型MATLAB实现

1. 项目背景与核心价值在工业预测和数据分析领域,多变量输入条件下的精准预测一直是个技术难点。传统神经网络模型在面对高维度、非线性数据时,往往存在收敛速度慢、易陷入局部最优的问题。这个项目通过将麻雀搜索算法(SSA)与卷积神经网络(CNN)相结合&am…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码