我尝试将ibase_connect
运行到firebird数据库。
数据库不在我的本地主机上。它在网络Windows服务器上运行。
我也有Windows并且连接到共享文件夹:
Z:\Folder_WITH_DB.
我安装了XAMPP
ibase extension
pdo firebird extension
。 我将 fbclient.dll 复制到我的 XAMPP / php 文件夹中。
但如果我运行此代码:
$db = 'Z:/Folder_WITH_DB/database.fdb';
$username='SYSDBA';
$password='masterkey';
$dbh = ibase_connect ( $db, $username, $password ) or die ("error in db connect");
发出此错误
Warning: ibase_connect(): Unable to complete network request to host "Z". Failed to locate host machine. in xxx/index.php on line xx
firebird.log :
INET/INET_connect: gethostbyname (Z) failed, error code = 11004
我将gds_db 3050/tcp
添加到我的localhost和服务器上的服务文件中(已重新启动),这是同样的错误。
在服务器上停用Windows防火墙。 firebird服务器和firebird guardian的服务正在运行。
答案 0 :(得分:2)
Firebird只能使用数据库服务器本地的数据库文件。您无法连接到网络共享上的Firebird数据库*。您需要改为连接到Firebird服务器。
因此,如果数据库为' Z:/Folder_WITH_DB/database.fdb'在文件夹D:\ data \ database.fdb中的服务器firebirdsrv上,然后您需要连接到firebirdsrv/3050:D:\data\database.fdb
。我强烈建议删除网络共享。
*:从技术上讲,可以使用共享,但默认情况下禁用它,因为通过网络共享从多个服务器访问数据库可能会损坏数据库。