每次我尝试连接到本地MongoDB时,都会不断收到此异常: SocketException:操作系统错误:连接被拒绝,errno = 111,地址= localhost,端口= 38748
有趣的事实:每次尝试后,异常中的端口都会增加2,并且始终是错误的(我什至在启动服务器时,端口接下来都会抛出异常)
MongoDB服务器正在运行-我NETWORK [initandlisten]等待端口27017上的连接
已设置依赖性-
依赖性: mongo_dart:^ 0.3.5 扑: sdk:颤抖
import 'package:mongo_dart/mongo_dart.dart' show Db, DbCollection;
class DBConnection {
static DBConnection _instance;
final String _host = "localhost";
final String _port = "27017";
final String _dbName = "debtservice";
Db _db;
static getInstance(){
if(_instance == null) {
_instance = DBConnection();
}
return _instance;
}
Future<Db> getConnection() async{
if (_db == null){
try {
_db = Db(_getConnectionString());
await _db.open();
} catch(e){
print(e);
}
}
return _db;
}
_getConnectionString(){
return "mongodb://$_host:$_port/$_dbName";
}
closeConnection() {
_db.close();
}
}
我已经尝试用普通的飞镖代码运行此代码,并且可以运行。
答案 0 :(得分:0)
在设备或仿真器上运行时,您的_host
不会是本地主机-您需要指定运行MongoDB的计算机的实际IP地址或网络主机名。
答案 1 :(得分:0)
好,我现在解决了这个问题...
我必须获取被仿真设备的被仿真设备的Wireless LAN-Adapter IP,并使用--bind_ip启动mongodb。还必须在连接字符串中提供ip。
仍然要感谢MichaelM。
答案 2 :(得分:0)
更新mongo配置文件
sudo nano /etc/mongod.conf
bindIp:127.0.0.1 ##### replace this line with below
bindIP:0.0.0.0 ####
也进行更改后,检查MongoDB的状态
sudo service mongod status
现在MongoDB可以很好地工作。