无法使用凭据(如 API 或云控制台)连接到 IBM_Cloud DB2 数据库
Can not connect to IBM_Cloud DB2 database using credentials (as API or Cloud console)
我无法在 IBM 云中或通过 Python ibm_db API 执行 SQL 查询。连接被拒绝。
我已经注册了 IBM 云服务。我能够启动 DB2 实例并成功创建连接。但是,当我启动控制台(从云内部)并尝试 运行 SQL 查询时,连接被拒绝。如果我使用 ibm_db API 使用 Python,也会发生同样的拒绝。尽我所能,我输入了正确的详细信息。但是我注意到一件事,自动创建的连接密码没有大写字母,并且某处总是有一个 + 号。顺便问一下,如何更改连接密码?
```python
import ibm_db
#Replace the placeholder values with your actual Db2 hostname, username, and password:
dsn_hostname = "somehostname" # e.g.: "dashdb-txn-sbox-yp-dal09-04.services.dal.bluemix.net"
dsn_uid = "abc12345" # e.g. "abc12345"
dsn_pwd = "6fabcde57+ghijkl8" # e.g. "7dBZ3wWt9XN6$o0J"
dsn_driver = "{IBM DB2 ODBC DRIVER}"
dsn_database = "BLUDB" # e.g. "BLUDB"
dsn_port = "50000" # e.g. "50000"
dsn_protocol = "TCPIP" # i.e. "TCPIP"
dsn = (
"DRIVER={0};"
"DATABASE={1};"
"HOSTNAME={2};"
"PORT={3};"
"PROTOCOL={4};"
"UID={5};"
"PWD={6};").format(dsn_driver, dsn_database, dsn_hostname, dsn_port, dsn_protocol, dsn_uid, dsn_pwd)
try:
conn = ibm_db.connect(dsn, "", "")
print ("Connected to database: ", dsn_database, "as user: ", dsn_uid, "on host: ", dsn_hostname)
except:
print ("Unable to connect: ", ibm_db.conn_errormsg() )
```
[IBM][CLI 驱动程序]SQL30082N 安全处理失败,原因为“24”("USERNAME AND/OR PASSWORD INVALID")。 SQL状态=08001 SQL代码=-30082
当我尝试通过 DB2 云控制台 运行 SQL 查询时发生类似错误。
Image describing the error from the IBM cloud DB2 SQL console
感谢您的宝贵时间
偶然发现的。
每次我启动 Db2 数据库时,它都会说可能需要一些时间来配置。我忽略了它,因为它立即打印了 "provisioned"。那时我曾经直接创建连接并开始使用 SQL 查询。没用。
但是上次(当它工作时)我创建了一个 Db2 实例,然后有一两天无法登录到 IBM Cloud。下次我登录时,它可以完美地接受 SQL 查询!我继续创建了一个连接,这样我就可以通过本地 Jupyter notebooks 工作,这也奏效了。
所以我想在这种情况下,解决方案只是等待,而不是继续创建和删除 Db2 实例以希望它开始工作。如果情况确实如此,IBM 员工可以更好地评论,但目前我很高兴。
希望这对以后的人有所帮助。
我也遇到过同样的问题。最后我发现,问题出在 Db2 实例本身。尝试删除此实例并在 IBM Cloud 中创建新实例。但是,请确保为 DALLAS(而非 LONDON)选择的位置。并且不要忘记创建新凭据并在您的代码中更新它们。
我无法在 IBM 云中或通过 Python ibm_db API 执行 SQL 查询。连接被拒绝。
我已经注册了 IBM 云服务。我能够启动 DB2 实例并成功创建连接。但是,当我启动控制台(从云内部)并尝试 运行 SQL 查询时,连接被拒绝。如果我使用 ibm_db API 使用 Python,也会发生同样的拒绝。尽我所能,我输入了正确的详细信息。但是我注意到一件事,自动创建的连接密码没有大写字母,并且某处总是有一个 + 号。顺便问一下,如何更改连接密码?
```python
import ibm_db
#Replace the placeholder values with your actual Db2 hostname, username, and password:
dsn_hostname = "somehostname" # e.g.: "dashdb-txn-sbox-yp-dal09-04.services.dal.bluemix.net"
dsn_uid = "abc12345" # e.g. "abc12345"
dsn_pwd = "6fabcde57+ghijkl8" # e.g. "7dBZ3wWt9XN6$o0J"
dsn_driver = "{IBM DB2 ODBC DRIVER}"
dsn_database = "BLUDB" # e.g. "BLUDB"
dsn_port = "50000" # e.g. "50000"
dsn_protocol = "TCPIP" # i.e. "TCPIP"
dsn = (
"DRIVER={0};"
"DATABASE={1};"
"HOSTNAME={2};"
"PORT={3};"
"PROTOCOL={4};"
"UID={5};"
"PWD={6};").format(dsn_driver, dsn_database, dsn_hostname, dsn_port, dsn_protocol, dsn_uid, dsn_pwd)
try:
conn = ibm_db.connect(dsn, "", "")
print ("Connected to database: ", dsn_database, "as user: ", dsn_uid, "on host: ", dsn_hostname)
except:
print ("Unable to connect: ", ibm_db.conn_errormsg() )
```
[IBM][CLI 驱动程序]SQL30082N 安全处理失败,原因为“24”("USERNAME AND/OR PASSWORD INVALID")。 SQL状态=08001 SQL代码=-30082
当我尝试通过 DB2 云控制台 运行 SQL 查询时发生类似错误。
Image describing the error from the IBM cloud DB2 SQL console
感谢您的宝贵时间
偶然发现的。 每次我启动 Db2 数据库时,它都会说可能需要一些时间来配置。我忽略了它,因为它立即打印了 "provisioned"。那时我曾经直接创建连接并开始使用 SQL 查询。没用。
但是上次(当它工作时)我创建了一个 Db2 实例,然后有一两天无法登录到 IBM Cloud。下次我登录时,它可以完美地接受 SQL 查询!我继续创建了一个连接,这样我就可以通过本地 Jupyter notebooks 工作,这也奏效了。
所以我想在这种情况下,解决方案只是等待,而不是继续创建和删除 Db2 实例以希望它开始工作。如果情况确实如此,IBM 员工可以更好地评论,但目前我很高兴。 希望这对以后的人有所帮助。
我也遇到过同样的问题。最后我发现,问题出在 Db2 实例本身。尝试删除此实例并在 IBM Cloud 中创建新实例。但是,请确保为 DALLAS(而非 LONDON)选择的位置。并且不要忘记创建新凭据并在您的代码中更新它们。