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:3306mysql -u USERNAME -h localhost -p连接手机上的MariaDB - 局域网内直接访问:
安装termux-api工具并授权,然后暴露端口:
确保手机和设备在同一WiFi网络,使用手机的局域网IP连接pkg install termux-api termux-open-port 3306
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
- 确认修改的是Termux正确的配置文件:
4. 排查Android系统网络限制
- 检查Android系统防火墙是否阻止了3306端口,部分定制ROM可能默认限制外部端口访问
- 关闭手机的私有DNS功能(设置-网络与互联网-私有DNS),避免DNS解析干扰
- 若使用移动数据,运营商可能限制了3306端口,建议切换到WiFi局域网测试
内容的提问来源于stack exchange,提问作者Waheed Ahmad
相关产品推荐
相关产品推荐

