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

实战指南!在Android Termux上搭建MySQL,并用内网穿透实现稳定远程连接

1. 准备工作:Termux基础配置

在安卓手机上搭建MySQL数据库服务器之前,我们需要先配置好Termux环境。Termux是一个强大的Android终端模拟器,它提供了完整的Linux环境,让我们能够在手机上运行各种命令行工具和服务器软件。

首先从F-Droid或Google Play商店安装Termux应用。安装完成后打开Termux,你会看到一个简洁的命令行界面。为了确保后续操作顺利,建议先执行以下基础配置:

pkg update && pkg upgrade

这个命令会更新软件包列表并升级所有已安装的包。接下来安装一些基础工具:

pkg install wget curl git nano

Termux默认的存储空间是隔离的,如果需要访问手机存储,需要运行:

termux-setup-storage

执行后会弹出权限请求,点击"允许"即可。这会在Termux的home目录下创建storage文件夹,链接到手机存储。

2. 安装和配置MariaDB服务器

MariaDB是MySQL的一个流行分支,完全兼容MySQL。在Termux中安装非常简单:

pkg install mariadb

安装完成后,我们需要初始化数据库:

mysql_install_db

这个命令会创建必要的系统数据库和表结构。初始化完成后,可以启动MariaDB服务:

nohup mysqld &

使用nohup&将服务放到后台运行。要验证服务是否正常运行,可以检查进程:

ps aux | grep mysql

默认安装的MariaDB没有设置root密码,这很不安全。我们来设置密码并做一些安全加固:

mysql_secure_installation

按照提示操作:

  1. 当前root密码为空,直接回车
  2. 设置新root密码
  3. 移除匿名用户(选择Y)
  4. 禁止root远程登录(根据需求选择,这里建议选N)
  5. 移除测试数据库(选择Y)
  6. 重新加载权限表(选择Y)

现在可以使用新密码登录MySQL了:

mysql -u root -p

3. 创建可远程访问的数据库用户

为了安全考虑,不建议直接使用root账户进行远程连接。我们创建一个专用用户:

CREATE USER 'remote_user'@'%' IDENTIFIED BY '你的强密码'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;

这样我们就创建了一个可以从任何主机连接的数据库用户。如果你希望限制访问来源,可以将%替换为特定IP地址。

4. 安装和配置cpolar内网穿透

由于手机通常处于内网环境,我们需要内网穿透工具将数据库服务暴露到公网。这里使用cpolar,它配置简单且支持TCP协议。

首先添加cpolar的软件源:

mkdir -p $PREFIX/etc/apt/sources.list.d echo "deb [trusted=yes] http://termux.cpolar.com termux extras" >> $PREFIX/etc/apt/sources.list.d/cpolar.list

更新软件包索引并安装cpolar:

pkg update pkg install cpolar

cpolar需要后台服务支持,安装Termux服务组件:

pkg install termux-services

安装完成后需要完全退出并重新打开Termux,然后启动cpolar服务:

sv up cpolar

设置开机自启:

sv-enable cpolar

现在可以在手机浏览器访问cpolar的Web管理界面:http://localhost:9200

5. 创建MySQL隧道映射

登录cpolar Web界面后,点击"隧道管理"->"创建隧道",配置如下:

  • 隧道名称:mysql_tunnel(可自定义)
  • 协议:tcp
  • 本地地址:3306
  • 域名类型:随机临时域名
  • 地区:选择离你最近的区域

点击"创建"按钮后,在隧道列表中可以查看生成的公网地址,格式类似:tcp://3.tcp.cpolar.cn:12345

这个地址就是你的数据库公网访问入口。注意临时域名会在24小时后变化,如果需要固定地址,需要升级到付费套餐。

6. 远程连接测试

现在可以使用任何MySQL客户端工具进行连接测试。这里以Navicat为例:

  1. 打开Navicat,点击"连接"->"MySQL"
  2. 连接名:Termux MySQL
  3. 主机:填写cpolar生成的地址(去掉tcp://前缀)
  4. 端口:cpolar生成的端口号
  5. 用户名:之前创建的remote_user
  6. 密码:你设置的密码

点击"测试连接",如果显示成功,说明配置正确。其他客户端如MySQL Workbench、DBeaver等连接方式类似。

7. 高级配置与优化

为了让这个移动数据库服务器更加实用,我们可以做一些优化:

性能调优:编辑MySQL配置文件(需先安装nano):

nano $PREFIX/etc/my.cnf

添加以下内容调整缓冲区和连接数:

[mysqld] key_buffer_size = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 max_connections = 50 query_cache_limit = 1M query_cache_size = 16M

定期备份:创建备份脚本:

nano ~/mysql_backup.sh

内容如下:

#!/bin/bash DATE=$(date +%Y%m%d) BACKUP_DIR="$HOME/storage/downloads/mysql_backup" mkdir -p $BACKUP_DIR mysqldump -u root -p你的密码 --all-databases > $BACKUP_DIR/full_backup_$DATE.sql

添加执行权限:

chmod +x ~/mysql_backup.sh

自动启动:创建启动脚本:

nano ~/.termux/boot/start_mysql.sh

内容:

#!/data/data/com.termux/files/usr/bin/sh nohup mysqld & sleep 5 sv up cpolar

给脚本执行权限:

chmod +x ~/.termux/boot/start_mysql.sh

8. 常见问题解决

连接被拒绝:检查MySQL是否运行:

ps aux | grep mysql

如果没有运行,重新启动:

nohup mysqld &

检查用户权限:

SELECT host, user FROM mysql.user;

确保你的用户有从远程连接的权限。

性能问题:手机硬件资源有限,如果发现数据库响应慢,可以:

  1. 减少最大连接数
  2. 降低缓冲区大小
  3. 避免运行复杂查询

cpolar隧道断开:检查cpolar服务状态:

sv status cpolar

如果停止,重新启动:

sv up cpolar

电池优化:安卓系统可能会在后台终止Termux进程,需要在手机设置中将Termux加入电池优化白名单。

通过以上步骤,你已经成功将安卓手机变成了一个可随时随地访问的MySQL数据库服务器。这个方案特别适合开发测试、个人项目或者小型应用。虽然性能不如专业服务器,但它的便携性和低成本是无可比拟的优势。

http://www.jsqmd.com/news/1180854/

相关文章:

  • NestOS构建排障指南:解决nestos-assembler常见问题的10个技巧
  • 专业级iOS越狱完全指南:从iOS 17到iOS 26的深度解析与实战方案
  • 【Unity Animation 2D】从零到一:骨骼绑定与IK动画实战指南
  • 直流有刷电机驱动技术:TC78H651AFNG与TM4C129LNCZAD方案解析
  • 为什么你的ChatGPT流式输出比别人慢3.8倍?揭秘Nginx/Cloudflare/CDN对chunked-transfer编码的5处静默截断点
  • GitLab 16.10 集成 Jira Cloud:3步配置实现提交自动同步Issue评论
  • 终极Motrix浏览器扩展:完整安装与配置指南
  • 带头结点 vs 不带头结点:C语言单链表两种实现的5个关键差异与选择指南
  • 1987年8月19日中午11-13点出生性格、运势和命运
  • 界面组件DevExpress WinForms v24.1 - 支持DateOnly TimeOnly类型
  • 5个技巧掌握Agently TriggerFlow:构建复杂AI工作流的终极指南
  • 20个Illustrator脚本合集:专业设计师的效率倍增器
  • 亲身到店探访合肥亨得利官方名表服务中心|全新服务热线及完整地址(2026年7月更新) - 亨得利官方
  • Transformer架构优化:9种核心方案解决大模型挑战
  • Video2X终极指南:如何用AI技术让480p老视频变身4K高清大片
  • 2026 年 7 月积家官方售后线下实地勘察报告,新店迁址真实体验 + 防踩坑干货合集 - 积家中国服务中心
  • B站缓存视频如何永久保存?m4s转MP4一键转换工具完全指南
  • 如何使用Quark Quantization技术优化Mistral-7B-Instruct-v0.3:性能提升终极指南
  • Tomcat 10.1.18 启动闪退排查:3步定位法 + 5类常见根因(附JDK 17兼容性测试)
  • Magnet2Torrent终极指南:3步完成磁力链接转种子文件
  • Cisco IOS AAA 认证授权实战:5步配置TACACS+与本地备份策略
  • 如何免费解锁Wand专业版:终极指南与完整教程
  • 王道操作系统大题精解(手绘流程图版,附解题心法)
  • 抽象工厂模式 Java 17 实战:跨平台 UI 组件库的 2 种风格实现
  • 软考软件评测师案例分析:等价类划分与边界值分析在积分计算中的5步应用
  • Node-RED 数组实战:3种高级数据处理模式(含JSONata与Buffer)
  • Claude长文档摘要准确率暴跌真相(实测137份PDF+28小时日志分析):结构化提示链重构指南
  • AI上下文工程在社交媒体分析中的应用与实践
  • Wand-Enhancer:打破游戏修改器的限制,开启无限游戏体验的钥匙
  • Scikit-learn 1.4.2 GMM 实战:3步完成鸢尾花数据集聚类与概率可视化