gpt4 book ai didi

python - django.db.utils.DatabaseError : ORA-12154: TNS:could not resolve the connect identifier specified 错误

转载 作者:太空狗 更新时间:2023-10-30 01:37:19 29 4
gpt4 key购买 nike

尝试通过 settings.py 连接到 Oracle DB

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'Hostname:Port/Service name not SID',
'USER': 'Username',
'PASSWORD': 'Password',
}
}

根据我在网上找到的内容,如果我没有 SID,这应该是我通过服务名称连接到 Oracle 数据库的方式。但我仍然收到错误 django.db.utils.DatabaseError: ORA-12154: TNS:could not resolve the connect identifier specified

但是,如果我放弃将这些详细信息放在 settings.py 中,而只使用 cx_Oracle 提供的连接字符串,

dsn_tns = cx_Oracle.makedsn('Hostname', 'Port', 
service_name='Service name not SID')
connection = cx_Oracle.connect('Username', 'Password', dsn_tns)

我连接得很好。是否有新的语法来连接到 settings.py 的服务名称?如果我可以简单地通过连接字符串进行连接,那么尝试通过 settings.py 进行连接是否有意义?

最佳答案

试试这个。

设置.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

EHS_CONF_PATH = os.path.join(BASE_DIR, 'arquivo.conf')
DATABASES = {
'default': {
'ENGINE': os.environ['DB_ENGINE'],
'NAME': os.environ['DB_NAME'],
'HOST': os.environ.get('DB_HOST', 'localhost'),
'PORT': os.environ.get('DB_PORT', '1521'),
'USER': os.environ.get('DB_USER', 'user'),
'PASSWORD': os.environ.get('DB_PASS', "pass")
}
}

arquivo.conf

DB_NAME=XE
DB_USER=user
DB_PASS=pass
DB_HOST=10.7.0.140 <-- ip host
DB_PORT=1521
DB_ENGINE=django.db.backends.oracle

当我的密码包含“@”时我遇到了问题

关于python - django.db.utils.DatabaseError : ORA-12154: TNS:could not resolve the connect identifier specified 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514970/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com