2016-03-08 64 views
1

我嘗試運行ibase_connect到firebird數據庫。Firebird php無法找到主機

數據庫不在我的本地主機上。它運行在網絡Windows服務器上。

我有窗戶也並具有共享文件夾的連接:用

  • ibase extension
  • pdo firebird extension

    Z:\Folder_WITH_DB.

    我已經安裝了XAMPP。

我複製了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到服務的文件上我本地主機和服務器(都重新啓動),這是相同的錯誤。

在服務器上禁用Windows防火牆。火鳥服務器和火鳥監護人服務正在運行。

+0

你試着用hostname來做嗎? '\\ SERVERNAME \ Folder \ db.fdb' – DarkBee

+0

同樣的錯誤:/我也嘗試過使用IP。 – nutzt

+0

嘗試更改共享的「共享權限」來讀寫「everyone」? – DarkBee

回答

2

Firebird只能使用本地數據庫服務器的數據庫文件。您無法連接到網絡共享*上的Firebird數據庫。您需要連接到Firebird服務器。

因此,如果'Z:/Folder_WITH_DB/database.fdb'的數據庫位於文件夾D:\ data \ database.fdb中的服務器firebirdsrv上,那麼您需要連接到firebirdsrv/3050:D:\data\database.fdb。我強烈建議刪除networkshare。

*:從技術上講,可以使用共享,但默認情況下會禁用它,因爲通過網絡共享從多個服務器訪問數據庫可能會損壞數據庫。