python连接clickhouse的端口问题及解决

 更新时间:2022年05月17日 10:10:29   作者:颹蕭蕭  
这篇文章主要介绍了python连接clickhouse的端口问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python连接clickhouse端口问题

   <!-- It is the name that will be shown in the clickhouse-client.
         By default, anything with "production" will be highlighted in red in query prompt.
    -->
    <!--display_name>production</display_name-->

    <!-- Port for HTTP API. See also 'https_port' for secure connections.
         This interface is also used by ODBC and JDBC drivers (DataGrip, Dbeaver, ...)
         and by most of web interfaces (embedded UI, Grafana, Redash, ...).
      -->
    <http_port>8123</http_port>

    <!-- Port for interaction by native protocol with:
         - clickhouse-client and other native ClickHouse tools (clickhouse-benchmark, clickhouse-copier);
         - clickhouse-server with other clickhouse-servers for distributed query processing;
         - ClickHouse drivers and applications supporting native protocol
         (this protocol is also informally called as "the TCP protocol");
         See also 'tcp_port_secure' for secure connections.
    -->
    <tcp_port>9000</tcp_port>

注意到可以使用两个端口,8123 和 9000 分别接收 http 协议和tcp协议。

  • 如果用jdbc连接,端口为 8123
  • 如果用driver连接,端口为 9000
from clickhouse_driver import Client
client = Client(host=host, port=port, user=user, password=password, database='default')
client  = get_client()
client.execute("show tables;")
print(client.execute("select * from test_arr"))
client.disconnect()

此时如果用8123端口则会得到如下报错:

clickhouse_driver.errors.UnexpectedPacketFromServerError: Code: 102. Unexpected packet from server 192.168.137.101:8123 (expected Hello or Exception, got Unknown packet)

向clickhouse导数据报错

clickhouse_driver.errors.UnexpectedPacketFromServerError: Code: 102

今天用python写个etl从mysql向clickhouse同步数据, 数据量不到1千万,导了一会报上面的第错误。然后在网上查了一下:找到文档写得很清楚:

Welcome to clickhouse-driver — clickhouse-driver 0.2.4 documentation

原来clickhouse提供两个端口:8123和9000

用native protocal需要使用9000端口,然后修改端口后成功。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python requests response值判断方式

    python requests response值判断方式

    这篇文章主要介绍了python requests response值判断方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • pyqt5的QWebEngineView 使用模板的方法

    pyqt5的QWebEngineView 使用模板的方法

    这篇文章主要介绍了pyqt5的QWebEngineView 使用模板的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python中自然语言处理和文本挖掘的常规操作详解

    Python中自然语言处理和文本挖掘的常规操作详解

    自然语言处理和文本挖掘是数据科学中的重要领域,涉及对文本数据的分析和处理,这篇文章为大家介绍了一些常见的任务和实现方法,需要的可以了解下
    2025-02-02
  • python利用lxml库剩下操作svg图片

    python利用lxml库剩下操作svg图片

    在大多数场景中,我们都用 lxml 库解析网页源码,但你是否知道,lxml 库也是可以操作 svg 图片的。本文就来和大家聊聊具体操作方法,希望对大家有所帮助
    2023-01-01
  • python merge、concat合并数据集的实例讲解

    python merge、concat合并数据集的实例讲解

    下面小编就为大家分享一篇python merge、concat合并数据集的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python PyQt5/Pyside2 按钮右击菜单实例代码

    python PyQt5/Pyside2 按钮右击菜单实例代码

    本文通过实例代码给大家介绍了python PyQt5/Pyside2 按钮右击菜单,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-08-08
  • Python 中使用 Selenium 单击网页按钮功能

    Python 中使用 Selenium 单击网页按钮功能

    Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器,本篇文章将介绍如何在 Python 中使用 selenium 单击网页上的按钮,感兴趣的朋友一起看看吧
    2023-11-11
  • Python如何声明以管理员方式运行(附实战案例)

    Python如何声明以管理员方式运行(附实战案例)

    由于Windows的安全机制,Python写的脚本缺少了管理员权限,运行就会受到一些限制,这篇文章主要介绍了Python如何声明以管理员方式运行的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • 浅谈Python对内存的使用(深浅拷贝)

    浅谈Python对内存的使用(深浅拷贝)

    这篇文章主要介绍了浅谈Python对内存的使用(深浅拷贝),具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python绘制土地利用和土地覆盖类型图示例详解

    Python绘制土地利用和土地覆盖类型图示例详解

    本文介绍了如何使用Python绘制土地利用和土地覆盖类型图,并提供了详细的代码示例,通过安装所需的库,准备地理数据,使用geopandas和matplotlib等库,可以绘制出土地利用和覆盖类型图,感兴趣的朋友一起看看吧
    2025-01-01

最新评论