我正在尝试打开FDB文件,但它似乎不起作用。无论我尝试什么,都会遇到此错误:

Opening ./20190401_database.fdb
Traceback (most recent call last):
  File "test.py", line 16, in <module>
    conn = fdb.connect(dsn=local_copy, user='****', password='****', charset='iso8859_1')
  File "/usr/local/lib/python3.6/site-packages/fdb/fbcore.py", line 848, in connect
    "Error while connecting to database:")
fdb.fbcore.DatabaseError: ('Error while connecting to database:\n- SQLCODE: -551\n- no permission for read-write access to database /var/www/wsgi/data/20190401_database.fdb', -551, 335544352)


我以用户apache的身份运行此代码,并且同一位用户刚刚将FDB文件复制到了该位置,因此,我很确定该用户具有读/写访问权限。

import fdb
from datetime import date, timedelta

DB_PATH="."

yesterday = date.today() - timedelta(days = 1)
yesterday = yesterday.strftime("%Y%m%d")
filename = f'{yesterday}_database.fdb'
local_fullpath = f'{DB_PATH}/{filename}'

local_copy = local_fullpath

print("Opening "+local_copy)
conn = fdb.connect(dsn=local_copy, user='****', password='****', charset='iso8859_1')

conn.close()


即使以root身份运行脚本,我也会遇到相同的错误。

最佳答案

问题在于,FCC文件必须由firebird用户读取/写入。

正确设置使其起作用。

关于python - 无法访问数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55469617/

10-09 23:16
查看更多