无法在 flutter 中连接到本地 mysql 服务器
Unable to connect to a local mysql server in flutter
在我的 flutter 项目中,我使用“mysql1”包连接 mysql 服务器,我在在线服务器上尝试过,效果很好。
但是当我尝试在本地服务器上使用它时它不起作用但不知道真正的问题是什么。
这里是调用 mysql1 包的 class
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。
我的项目的目的只是为了 运行 这个应用程序在模拟器上。"
此图片包含 myphp 管理员详细信息:
所以..
我该如何解决?
我尝试了很多方法,在 Whosebug 上看到了很多帖子,但没有任何优势!!
如果数据库不在 运行 Android 设备上,而是在您本地网络上的计算机上。您需要用该系统的 IP 地址替换“localhost”。
例如,如果 运行 计算机的 IP 地址 MySQL 数据库是 192.168.1.99,则更改行:
静态字符串主机 = 'localhost',
至
静态字符串主机 = '192.168.1.99',
干杯
此处:static String host = 'localhost'
在模拟器上使用您的 PC 名称 PC1
例如
经过长时间尝试解决这个问题后,我发现通过 android 模拟器连接到本地服务器并不是尝试的好方法。
合乎逻辑的方法是通过在线服务器连接。
我遇到了同样的问题..在研究之后我使用了名为 mysql_utils 的 this 包。它工作正常。
在我的 flutter 项目中,我使用“mysql1”包连接 mysql 服务器,我在在线服务器上尝试过,效果很好。
但是当我尝试在本地服务器上使用它时它不起作用但不知道真正的问题是什么。
这里是调用 mysql1 包的 class
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。
我的项目的目的只是为了 运行 这个应用程序在模拟器上。"
此图片包含 myphp 管理员详细信息:
所以..
我该如何解决?
我尝试了很多方法,在 Whosebug 上看到了很多帖子,但没有任何优势!!
如果数据库不在 运行 Android 设备上,而是在您本地网络上的计算机上。您需要用该系统的 IP 地址替换“localhost”。
例如,如果 运行 计算机的 IP 地址 MySQL 数据库是 192.168.1.99,则更改行:
静态字符串主机 = 'localhost',
至
静态字符串主机 = '192.168.1.99',
干杯
此处:static String host = 'localhost'
在模拟器上使用您的 PC 名称 PC1
例如
经过长时间尝试解决这个问题后,我发现通过 android 模拟器连接到本地服务器并不是尝试的好方法。
合乎逻辑的方法是通过在线服务器连接。
我遇到了同样的问题..在研究之后我使用了名为 mysql_utils 的 this 包。它工作正常。