Firebird DB的连接错误

时间:2015-09-30 23:44:50

标签: database node.js firebird flamerobin

我在下面附上了我的代码和错误消息。你能帮帮我吗,我找不到弄错的原因。 谢谢,

//我的代码

 // Node-Firebird
var Firebird = require('node-firebird');
// Options
var options = {};
//options.host = '127.0.0.1';
//options.port = 3050;
options.database = 'mydb.FDB';
options.user = 'SYSDBA';
options.password = 'masterkey';
// Query
Firebird.attach(options, function(err, db) {

    if (err)
        throw err;

    // db = DATABASE
    db.query('SOME QUERY', function(err, result) {
        // IMPORTANT: close the connection
        db.detach();
    });

});

//错误消息

  

/Users/bla/myfile.js:14 throw err; ^错误:I / O.   期间出现错误"打开"文件操作" /Users/bla/mydb.FDB" ;,错误   在尝试打开doCallback文件时   (/Users/bla/node_modules/node-firebird/lib/index.js:1233:18)at at   /Users/bla/node_modules/node-firebird/lib/index.js:2897:21 at   /Users/bla/node_modules/node-firebird/lib/messages.js:151:25搜索   (/Users/bla/node_modules/node-firebird/lib/messages.js:117:13)at at   /Users/bla/node_modules/node-firebird/lib/messages.js:54:21 at   FSReqWrap.wrapper ascomplete

注意: 实际上,我可以使用基于c ++的驱动程序连接相同的数据库:

var fb  = require("firebird");
var con = fb.createConnection();
con.connectSync('mydb.FDB', 'SYSDBA', 'masterkey', '');
var rs = con.querySync('SOME QUERY'); 

当我尝试通过Flamerobin连接时,它也可以完美地工作。我猜这真是奇怪的错误。还有其他建议吗?

1 个答案:

答案 0 :(得分:2)

我不知道node-firebird驱动程序,但考虑到行为,可能是本地连接(客户端库充当服务器),而另一个通过服务器连接。这可能会导致以下问题:

  1. 指定相对路径时的路径分辨率不同(除非将mydb.FDB定义为别名),文件/Users/bla/mydb.FDB可能不存在
  2. 访问权限不足,错误中的路径/Users/bla/mydb.FDB表明它是用户文件夹中的数据库,这意味着Firebird服务器进程无法访问它(通常在用户firebird下运行)。