我有一个,我想直接插入HANA数据库,也想从数据库中读取它。
我试过这样的代码:
from sqlalchemy import create_engine
engine = create_engine('hana+pyhdb://username:password@example.com:port')
my_df = pd.DataFrame([[1, 2], [3, 4], [5, 6], [7, 8]], columns=["A", "B"])
my_df.to_sql('table_name', con = engine, index = False, if_exists = 'replace')
错误: DBAPIError:(hdbcli.dbapi.Error) (4321,“只允许安全连接”)(有关此错误的背景位置为:
是关于添加ssl证书的吗?如何将其添加到引擎中?
但是,我可以使用encrypt选项通过Python连接OK:
conn = dbapi.connect(
address="host",
port=portnr,
encrypt="true",
user="user",
password="pwd"
)
但是,如果我在这里传递这个连接对象:
my_df.to_sql('table_name', con = conn, index = False, if_exists = 'replace')
我还是会出错的。怎么解决这个问题?
发布于 2021-07-26 06:39:31
您正在使用的HANA DB启用了安全连接。因此,您需要在连接URL中传递encrypt=true。如果证书是自签名的,那么很多人都需要通过添加sslvalidatecertificate=false来忽略它
尝试以下几个方面:
connection_string = 'hana://%s:%s@%s:%s/?encrypt=true&sslvalidatecertificate=false' % (hdb_user, hdb_password, hdb_host, hdb_port)
engine = create_engine(connection_string)
https://stackoverflow.com/questions/62689262
复制相似问题