You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Termux中实现跨设备连接MariaDB数据库?

解决Termux中MariaDB允许远程连接的问题

1. 修改MariaDB绑定地址(关键步骤)

Termux中的MariaDB默认仅监听localhost,需修改配置让它对所有网卡开放:

  • 编辑配置文件:nano $PREFIX/etc/my.cnf.d/server.cnf
  • 在[mysqld]区块中添加或修改:
    bind-address = 0.0.0.0
    
  • 保存退出后,重启MariaDB服务:mariadb-service restart

2. 创建并授权远程访问用户

确保用户拥有跨IP访问的权限,避免使用仅限定localhost的用户:

  • 登录MariaDB:mysql -u root -p
  • 创建允许所有IP访问的用户(可将%替换为特定IP/网段,比如192.168.1.%来缩小访问范围):
    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_strong_password';
    
  • 授予用户对应权限(示例为全权限,可根据需求调整):
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
    
  • 刷新权限使更改生效:
    FLUSH PRIVILEGES;
    
  • 退出MariaDB:EXIT;

3. 开放Termux与手机系统的端口

  • Termux中安装iptables并开放3306端口:
    pkg install iptables -y
    iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    
  • 若手机开启了系统防火墙,需允许3306端口通过,或直接给Termux应用开放完整网络权限。

4. 局域网连接测试

  • 获取手机的局域网IP:执行ip addr show wlan0,找到inet字段后的地址(比如192.168.1.100)
  • 在其他设备上验证连接:
    • 用MySQL客户端:mysql -h 192.168.1.100 -u remote_user -p
    • 用Python代码连接:
      import mysql.connector
      
      conn = mysql.connector.connect(
          host="192.168.1.100",
          user="remote_user",
          password="your_strong_password",
          database="your_target_db"
      )
      

5. 互联网远程连接(需额外配置)

要通过互联网连接,需在路由器上做端口映射:

  • 登录路由器管理后台,找到端口转发/虚拟服务器设置
  • 添加规则:将路由器的3306端口转发到手机局域网IP的3306端口
  • 获取公网IP:在Termux中执行curl ifconfig.me查看
  • 注意:公网暴露3306端口存在安全风险,建议:
    • 给远程用户设置强密码,并限定其访问IP
    • 优先使用VPN或SSH隧道加密连接
    • 开启MariaDB的SSL加密功能

常见问题排查

  • 重启后仍无法连接:检查配置文件是否正确保存,确认bind-address已设为0.0.0.0
  • 局域网内无法ping通手机:确保设备在同一网络,手机未开启网络隔离功能
  • 端口无法访问:用nc -zv <手机IP> 3306测试端口是否开放,若失败检查iptables规则和系统防火墙
  • 用户权限失效:确认用户的主机字段是%或对应远程IP,且已执行FLUSH PRIVILEGES

内容的提问来源于stack exchange,提问作者TBA5854

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:30:59