clickhouse远程连接
时间: 2025-06-30 11:13:04 浏览: 7
### ClickHouse 远程连接配置方法
为了实现 ClickHouse 的远程连接,需要对服务器的配置文件进行修改,并确保防火墙规则允许外部访问。以下是详细的配置方法和注意事项:
#### 1. 修改配置文件
ClickHouse 默认只监听本地连接(`localhost`),因此需要修改配置文件以支持远程连接。配置文件位于 `/etc/clickhouse-server/config.xml`。
- 打开配置文件并取消以下行的注释:
```xml
<listen_host>::</listen_host>
```
此操作使得 ClickHouse 监听所有网络接口,从而允许远程连接[^1]。
- 如果需要更改默认端口(9000 用于客户端连接,8123 用于 HTTP 接口),可以使用 `sed` 命令批量替换端口号:
```bash
sed -i "s/9000/5566/g" /etc/clickhouse-server/config.xml
```
替换后需要重启 ClickHouse 服务以使更改生效[^2]。
#### 2. 配置用户权限
ClickHouse 默认用户为 `default`,密码存储在 `/etc/clickhouse-server/users.d/default-password.xml` 中。如果需要启用远程访问,可以删除该文件以移除密码限制(不推荐生产环境使用)[^2]。
此外,可以通过新增用户并分配权限的方式增强安全性。例如:
```sql
CREATE USER remote_user IDENTIFIED WITH plaintext_password BY 'password';
GRANT ALL ON *.* TO remote_user;
```
上述命令创建了一个名为 `remote_user` 的用户,并赋予其所有权限[^4]。
#### 3. 确保防火墙规则开放
为了允许远程机器访问 ClickHouse,必须确保防火墙开放了相关端口(默认为 9000 和 8123)。可以使用以下命令检查并开放端口:
```bash
sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8123/tcp --permanent
sudo firewall-cmd --reload
```
#### 4. 测试远程连接
完成上述配置后,可以使用客户端工具(如 DataGrip 或命令行工具)测试连接。例如:
```python
import clickhouse_driver
client = clickhouse_driver.Client(host='your_server_ip', port=5566, user='remote_user', password='password')
result = client.execute('SELECT 1')
print(result)
```
---
### 注意事项
- 在生产环境中,建议避免直接暴露 ClickHouse 到公网,可通过反向代理或 SSH 隧道增强安全性。
- 如果启用了密码验证,请确保客户端连接时提供正确的用户名和密码[^4]。
---
阅读全文
相关推荐


















