ibase_connect:远程计算机主机和来自windows的共享数据库文件


ibase_connect: remote computer host and shared db file from windows

Linux红帽子,通过装载到/mnt/databases将驱动器连接到远程服务器(192.168.0.103)然后尝试连接

$idbh = ibase_connect("192.168.0.103/3050:/mnt/databases/XXX.IB", "SYSDBA", "masterkey", "WIN1251") or die(ibase_errmsg().' on line: '.__LINE__);

结果

 ibase_connect(): I/O error for file "/mnt/databases/XXX.IB" Error while trying to open file unknown Win32 error 3

尝试stat/mnt/databases/XXX.IB

  File: `/mnt/databases/XXX.IB'
  Size: 46415872        Blocks: 90752      IO Block: 16384  regular file
Device: 17h/23d Inode: 1970324836974627  Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-07-16 16:04:08.470709400 +0400
Modify: 2013-06-17 13:03:03.600143300 +0400
Change: 2013-06-17 13:03:03.600143300 +0400

为什么我无法连接?

不要试图通过任何形式的挂载访问Firebird或Interbase数据库。服务器进程应该与包含数据库的磁盘在同一台计算机上。

然后,您的客户端将与服务器进程进行通信,以与数据库进行交互。

您需要为连接指定数据库的别名,或者指定磁盘上相对于Firebird服务器的完整路径。http://www.firebirdsql.org/manual/qsg2-databases.html

因此,如果在Firebird服务器上的数据库位于C:''databases''db.fdb上,则需要提供该数据库。网络驱动器/共享无法工作,因为FB服务器上下文不存在。

有些应用程序(QuickBooks)欺骗你,让你以为你需要共享文件所在的文件夹,但实际上它只是引导TCP/IP套接字连接到数据库服务。火鸟不是那样工作的。