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

Termux环境下Android设备MySQL远程连接失败问题求助

解决Termux中MariaDB远程连接失败(ERROR 2003)的问题

1. 检查并授权MySQL用户的远程访问权限

默认情况下,MariaDB创建的用户仅允许本地(localhost)登录,需手动授权远程访问权限:

  • 登录Termux中的MariaDB:
    mysql -u root -p
    
  • 执行授权命令(替换USERNAME和PASSWORD为你的实际账号密码):
    GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD';
    FLUSH PRIVILEGES;
    
    • %表示允许从任意IP地址连接,若需限制特定IP,可将%替换为具体IP(如192.168.1.100)

2. 确认Termux的端口暴露设置

Termux运行在Android沙箱环境中,默认3306端口无法直接被外部设备访问,需做端口转发:

  • 电脑端通过ADB转发:
    连接手机到电脑,执行ADB命令:
    adb forward tcp:3306 tcp:3306
    
    之后电脑端可通过mysql -u USERNAME -h localhost -p连接手机上的MariaDB
  • 局域网内直接访问:
    安装termux-api工具并授权,然后暴露端口:
    pkg install termux-api
    termux-open-port 3306
    
    确保手机和设备在同一WiFi网络,使用手机的局域网IP连接

3. 验证MariaDB监听地址是否生效

修改配置后,需确认服务确实监听了0.0.0.0:

  • 在Termux中执行:
    netstat -tulpn | grep mysqld
    
  • 若输出显示0.0.0.0:3306,说明配置生效;若为127.0.0.1:3306,则:
    • 确认修改的是Termux正确的配置文件:/data/data/com.termux/files/usr/etc/my.cnf
    • 重启MariaDB服务:
      service mysql restart
      

4. 排查Android系统网络限制

  • 检查Android系统防火墙是否阻止了3306端口,部分定制ROM可能默认限制外部端口访问
  • 关闭手机的私有DNS功能(设置-网络与互联网-私有DNS),避免DNS解析干扰
  • 若使用移动数据,运营商可能限制了3306端口,建议切换到WiFi局域网测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:32:53