【问题标题】:How to invoke environmental variables while connecting to DB2 database using python如何在使用 python 连接到 DB2 数据库时调用环境变量
【发布时间】:2021-05-15 01:20:38
【问题描述】:

我已将 DB2 用户名和 DB2 密码分别保存为 .bashrc(linux) 中的“DB2_USER”和“DB2_PASS”。而且,我正在尝试在我的 python 程序中调用它们以连接到 DB2 数据库。

.bashrc 内容:

export DB2_USER="my_username"
export DB2_PASS="my_password"

我的python代码sn-p:

db_user = os.environ.get('DB2_USER')
db_password = os.environ.get('DB2_PASS')

conn = ibm_db.connect('DRIVER={IBM DB2 ODBC DRIVER};DATABASE=<my_db>;HOSTNAME=<my_hostname>;PORT=50000;PROTOCOL=TCPIP;UID=db_user;pwd=db_password','','')

在执行上述代码时,我收到以下错误。我可以知道任何其他替代方式吗?

Traceback(最近一次调用最后一次):文件“test.py”, 第 38 行,在 conn = ibm_db.connect('DRIVER={IBM DB2 ODBC DRIVER};DATABASE=;HOSTNAME=;PORT=50000;PROTOCOL=TCPIP;UID=db_user;pwd=db_password','','' ) 异常:[IBM][CLI Driver] SQL30082N 安全处理失败 原因为“24”(“用户名和/或密码无效”)。 SQLSTATE=08001 SQLCODE=-30082

【问题讨论】:

  • @mao 是的,我打印了 db_user 和 db_password 。而且,我可以看到打印的实际值。顺便说一句,我的密码有特殊字符。

标签: python db2 environment-variables


【解决方案1】:

我之前的代码实际上将db_userdb_pass 作为用户名和密码。使用连接构造连接字符串很有帮助。

conn = ibm_db.connect('DRIVER={IBM DB2 ODBC DRIVER};DATABASE=<my_db>;HOSTNAME=<my_hostname>;PORT=50000;PROTOCOL=TCPIP;'+';UID='+db_user+';pwd='+db_pass,'','')

【讨论】:

    猜你喜欢
    • 2015-04-19
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多