Flutter真机运行连接本地MySQL超时问题求助
Flutter真机连接本地MySQL超时问题
我用真实Android设备运行Flutter应用,通过mysql1库连接本地MySQL数据库,模拟器上运行正常,但真机始终报连接超时错误。
我的数据库配置文件mysql.dart代码如下:
/*This is a database configuration file*/ import 'package:mysql1/mysql1.dart'; class Mysql { static String host = '10.0.2.2', user = 'root', //User db = 'users'; //Database name static int port = 3306; //MySQL port number Mysql(); Future<MySqlConnection> getConnection() async { var settings = new ConnectionSettings( host: host, port: port, user: user, db: db); return await MySqlConnection.connect(settings); } }
我已经尝试把host改成本地IP地址,但还是出现相同的连接错误。
可能的解决方法:
- 确认设备与电脑同网:确保手机和运行MySQL的电脑连接同一Wi-Fi,不要使用手机流量。
- 修改MySQL绑定地址:找到MySQL配置文件(
my.cnf/my.ini),将bind-address改为0.0.0.0(允许所有IP访问),修改后重启MySQL服务。 - 授权MySQL用户远程访问:登录MySQL执行以下命令,开放用户的局域网访问权限:
可将GRANT ALL PRIVILEGES ON users.* TO 'root'@'%' IDENTIFIED BY '你的数据库密码'; FLUSH PRIVILEGES;%替换为手机的具体IP来缩小权限范围。 - 关闭电脑防火墙/安全软件:临时关闭防火墙,或添加规则允许3306端口的入站连接。
- 验证网络连通性:用手机终端工具ping电脑的局域网IP,确认网络是否通畅。
- 检查Android网络权限:在
AndroidManifest.xml中确保添加了权限:<uses-permission android:name="android.permission.INTERNET" />
内容的提问来源于stack exchange,提问作者CNS
相关产品推荐
相关产品推荐

