在我的 flutter 项目中,我使用“mysql1”包连接一个 mysql 服务器,我在一个在线服务器上尝试过,效果很好。
但是当我尝试在本地服务器中使用它时它不起作用但不知道真正的问题是什么。
这里是调用mysql1包的类
import 'package:mysql1/mysql1.dart';
class MySqlDB {
static String host = 'localhost',
user = 'root',
password = 'admin',
db = 'univ';
static int port = 3306;
Future<MySqlConnection> getConnection() async{
var settings = new ConnectionSettings(
host: host,
user: user,
password: password,
port: port,
db: db
);
return await MySqlConnection.connect(settings);
}
}
And here is the problem message:
E/flutter ( 5603): [ERROR:flutter/lib/ui/ui_dart_state.cc(213)] Unhandled Exception: SocketException: OS Error: Connection refused, errno = 111, address = localhost, port = 59476
E/flutter ( 5603):
"更新:
我使用 Xampp 应用程序运行 apache & MySQL 和 phpmyadmin,所以没有这个应用程序,笔记本电脑上就没有 mysql。
我的项目的目的只是在模拟器上运行这个应用程序。”
所以..
我该如何解决?
我尝试了很多方法,在 stackoverflow 上看到了很多帖子,但没有任何优势!!
答案 0 :(得分:0)
如果数据库不是在 Android 设备上运行,而是在本地网络上的计算机上运行。您需要将“localhost”替换为该系统的 IP 地址。
例如如果运行MySQL数据库的计算机的IP地址为192.168.1.99,则更改行:
static String host = 'localhost',
到
静态字符串主机 = '192.168.1.99',
干杯
答案 1 :(得分:0)
这里:static String host = 'localhost'
在模拟器上使用您的 PC 名称 PC1
例如
答案 2 :(得分:0)
针对这个问题尝试了很长时间后,我发现通过 android 模拟器连接到本地服务器并不是一个好方法。
逻辑方式是通过在线服务器连接。