如何在Python中通过SSL连接ClickHouse?含pandahouse等工具配置
使用pandahouse和clickhouse_connect配置ClickHouse SSL连接
根据你提供的DBeaver连接参数(SSL开启、SSL mode为None),以下是两个Python库的具体配置方法:
一、pandahouse 配置方法
pandahouse基于requests库实现,需要指定HTTPS协议,并关闭证书验证(对应SSL mode None):
import pandahouse as ph # 组装连接参数 conn_params = { 'host': '**.***.**.***', 'port': 8443, 'database': 'db_name', 'user': 'user_name', 'password': '***', 'protocol': 'https', # 启用HTTPS/SSL连接 'verify': False # 关闭证书验证,匹配SSL mode None } # 测试连接并执行查询 with ph.connect(**conn_params) as conn: query_result = ph.read_clickhouse('SELECT 1', connection=conn) print(query_result)
二、clickhouse_connect 配置方法
clickhouse_connect的客户端支持直接配置SSL参数,同样开启SSL并关闭证书验证:
import clickhouse_connect # 初始化客户端 client = clickhouse_connect.get_client( host='**.***.**.***', port=8443, database='db_name', username='user_name', password='***', secure=True, # 开启SSL连接 verify=False # 关闭证书验证,匹配SSL mode None ) # 测试连接并执行查询 result = client.query('SELECT 1') print(result.result_set)
补充说明
如果后续需要验证服务器证书(比如有CA证书文件),可以将verify参数替换为证书文件的绝对路径(例如verify='/etc/ssl/ca.crt'),但当前你的配置对应verify=False即可。
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

