[英]MariaDB and node.js on Mac OSX
我有一个已安装并运行MariaDB的MAC。 我安装了两个应用程序“ Sequel Pro”,它们在MAC上以本机运行,并且可以运行,并且可以连接到数据库。 我也有在wine下运行的HeidiSQL,我也可以连接和浏览数据库。
我还安装了节点,但是当我尝试连接数据库时,无法连接数据库,得到的消息是:
连接ECONNREFUSED,然后输入系统的IP地址,然后输入端口3306
这看起来像是权限问题,但是我对MAC还是很陌生,不确定如何解决该问题。 在node.js中运行的脚本可以在我的Windows系统上运行。
我知道该用户存在并且有效,并且与我使用SQL应用程序进行连接的用户相同。
MAC OSX正在运行最新的os x sierra,mariadb是osx10.12 x64的版本15.1发行版10.1.17。 节点是版本4.6.0
我的连接例程:
function mariaDBconnectPrimtive(intIdx, cbRoutine, objParams) {
try{
if ( !(mysql && mysql.createPool) ) {
throw( "Cannot create mysql pool!" );
}
var pool;
if ( intIdx == 1 ) {
pool = mysqlBusDevPool;
} else {
pool = mysqlPool;
}
if ( pool == undefined ) {
console.log("strServerHost: " + strServerHost);
pool = mysql.createPool({host:strServerHost
,port:"3306"
,database:"dbname"
,user:"usrname"
,password:"password"
,timezone:"utc"
,multipleStatements:true
,max:1000
,min:1
,idleTimeoutMillis:defs.QUERY_TIMEOUT});
}
if ( pool && pool.getConnection ) {
pool.getConnection(function(errsts, conn) {
var resp = {};
if ( errsts ) {
resp['error'] = errsts;
eh.msg({file:strThisFile
,method:"mariaDBconnectPrimtive"
,ex:errsts});
return;
}
resp['state'] = "connected";
if ( cbRoutine ) {
cbRoutine(conn, resp, objParams);
if ( conn != undefined ) {
conn.release();
}
}
});
}
if ( intIdx == 1 ) {
mysqlBusDevPool = pool;
} else {
mysqlPool = pool;
}
} catch(ex) {
eh.msg({file:strThisFile
,method:"mariaDBconnectPrimtive"
,ex:ex});
}
};
节点开始获取系统IP时执行的代码:
os = require("os");
var objNIs = os.networkInterfaces();
for( var strName in objNIs ) {
var aryIFace = objNIs[strName];
for( var i=0; i<aryIFace.length; i++ ) {
var objNI = aryIFace[i];
if ( objNI['internal'] == false && "IPv4".match(objNI['family']) ) {
strServerHost = objNI['address'];
break;
}
}
if ( strServerHost !== undefined ) {
break;
}
}
这似乎与返回的IP地址有关,我将服务器地址硬编码为“ localhost”,并且可以正常工作,但是分配给系统的I / P怎么了?
我在mariadb中创建了一个有权访问原始I / P的用户,但这无济于事。
您无法通过IP地址进行连接的原因记录在这里 :
默认情况下,MariaDB软件包将MariaDB绑定到127.0.0.1(环回IP地址)...
这意味着它只能通过回送接口访问,而不能通过其他任何允许外部IP通信的接口访问(例如与代码解析到的IP地址关联的接口)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.