【发布时间】:2020-01-06 18:28:34
【问题描述】:
我在使用 python 驱动程序连接到 windows docker 容器中的 clickhouse 时遇到问题。 Clickhouse 服务器在我的 E 驱动器上运行在暴露于端口 8123 的 docker 容器中。我可以在 R 中使用这个包https://github.com/hannesmuehleisen/clickhouse-r 轻松连接:
conn = DBI::dbConnect(clickhouse::clickhouse(),
host = "my_ip",
port = 8123L,
user = "myun",
password = "mypwd")
但是当我在 python 中使用 https://clickhouse-driver.readthedocs.io/en/latest/quickstart.html 尝试同样的事情时,我遇到了一个问题:
from clickhouse_driver import Client
client = Client(host = 'my_ip',
port = '8123',
user='myun',
password='mypwd',
secure=True,
verify=False,
database='db_name')
print(client.execute('SELECT now()'))
File "d:\ProgramData\Anaconda3\lib\site-packages\clickhouse_driver\connection.py", line 249, in connect
'{} ({})'.format(e.strerror, self.get_description())
NetworkError: Code: 210. [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:777) (my_ip:8123)
有人知道可能是什么问题吗?
更新:
尝试安全 = F 并得到:
File "d:\ProgramData\Anaconda3\lib\site-packages\clickhouse_driver\connection.py", line 243, in connect
'{} ({})'.format(e.strerror, self.get_description())
SocketTimeoutError: Code: 209. None
【问题讨论】:
-
你试过
secure=False吗? -
尝试并收到此错误:文件“d:\ProgramData\Anaconda3\lib\site-packages\clickhouse_driver\connection.py”,第 243 行,连接“{} ({})”。格式(e.strerror,self.get_description())SocketTimeoutError:代码:209。无
-
你确定 my_ip 相同并且属于运行 clickhouse-server 的 docker 容器吗?在您运行 python 代码的主机上显示
telnet my_ip 8123和ping my_ip什么? -
是的,它是相同的 IP 地址,因为当我在 R 中运行相同的连接时,它可以工作。我还使用该 IP 地址从浏览器访问服务器 my_ip:8123
标签: python docker clickhouse