[英]Try to connect a Firebird 3.05 Database to Python (pandas)
[英]Python connect to firebird docker database
我有一個mydb.fdb
文件,如何將其加載到docker容器中,然后從python連接到它。 我在docker-compose中執行以下操作:
version: '2'
services:
firebird:
image: jacobalberty/firebird
environment:
ISC_PASSWORD: pass
volumes:
- ./database:/databases
然后我做:
docker exec -it <container-id> bin/bash
我在容器中的/databases
文件夾中看到我的.fdb
文件,但是當我在容器內執行命令時:
cd /usr/local/firebird/bin
./isql
SQL> CONNECT "/databases/mydb.FDB" user sysdba password masterkey;
我收到了:
服務器配置不允許在位置/databases/mydb.FDB使用數據庫
而且我也不明白如何通過fdb python模塊連接到這個數據庫。 我做:
import fdb
con = fdb.connect(
host='0.0.0.0',
port='3050',
database='mydb.FDB',
user='sysdba',
password='masterkey')
並收到:
提升異常(“無法確定Firebird客戶端庫的位置。”)
您的問題中有兩個不同的問題,將來請務必將它們作為單獨的問題提出。
至於您的第一個問題,默認情況下Firebird泊塢窗映像的設置需要位置/firebird/data
,並明確配置Firebird以限制僅訪問該位置。 如果要使用其他位置,則必須將環境變量DBPATH
設置為正確的路徑。 另請參見問題12 , Dockerfile和圖像的build.sh 。 此選項似乎沒有記錄; 我對那張票留了評論。
至於你的第二個問題,它有兩個部分。 一,你不能使用0.0.0.0來連接,這只是“這個主機的所有IP地址”的簡寫,它只能在監聽連接時使用,而不能在連接時使用。 從運行docker的機器連接時,您將需要使用127.0.0.1或localhost。
最重要的是,該錯誤表明您沒有安裝Firebird本機客戶端。 FDB驅動程序需要fbclient.dll
(Windows)或libfbclients.so
(Linux)。 您需要安裝Firebird本機客戶端,或者切換到pythonbirdsql ,它是純Python中的Firebird驅動程序(它在Python中實現Firebird協議)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.