Python连接ClickHouse数据库报错210,请求技术协助
排查ClickHouse连接错误码210的解决方案
错误码210对应ClickHouse的NETWORK_ERROR,核心是客户端无法与ClickHouse服务建立有效连接,以下是针对性排查步骤:
1. 确认ClickHouse服务状态
- 本地环境执行命令检查服务是否运行:
# Linux系统 sudo systemctl status clickhouse-server # Windows命令提示符 sc query clickhouse-server - 若服务未启动,先启动服务:
# Linux sudo systemctl start clickhouse-server # Windows sc start clickhouse-server
2. 修正端口配置(高频误区)
clickhouse-driver默认使用9000端口(TCP协议),而非代码中写的8123(HTTP端口),这是最常见的错误点:
- 修改代码端口参数为9000再测试:
port = 9000 # 适配clickhouse-driver的默认TCP端口 - 也可查看ClickHouse配置文件
/etc/clickhouse-server/config.xml,确认TCP端口是否被自定义修改。
3. 排查防火墙/安全组拦截
- 本地防火墙可能阻断了端口访问,临时关闭测试(测试后恢复):
# Linux sudo systemctl stop firewalld # Windows netsh advfirewall set allprofiles state off - 若连接远程服务器,需确认云服务商安全组已开放对应端口。
4. 验证连接参数准确性
- 检查
user:默认用户为default,不要留空;若自定义了用户需填对应名称 - 检查
password:若ClickHouse设置了密码需填写,未设置则留空 - 检查
database:确认myBase数据库存在,可通过ClickHouse客户端执行SHOW DATABASES;验证
5. 测试基础网络连通性
用命令测试端口是否可达:
telnet localhost 9000 # 或用nc命令 nc -zv localhost 9000
若连接失败,回到服务状态、防火墙步骤重新排查。
修改后的测试代码
from clickhouse_driver import Client # 设置ClickHouse数据库连接参数 host = 'localhost' port = 9000 # 改用TCP端口 user = 'default' # 默认用户名,按需修改 password = '' # 有密码则填写实际值 database = 'myBase' # 创建ClickHouse客户端 client = Client(host=host, port=port, user=user, password=password, database=database) # 示例查询 query = 'SELECT * FROM data LIMIT 10' result = client.execute(query) # 输出结果 for row in result: print(row)
内容的提问来源于stack exchange,提问作者Vladimir
相关产品推荐
相关产品推荐

