clickhouse 无法远程连接

Posted 福州-司马懿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clickhouse 无法远程连接相关的知识,希望对你有一定的参考价值。

lsof 命令

lsof 命令用来从系统获得与网络连接相关的信息,全称为 “列出打开文件(lists openfiles)”。这是因为,在Unix中的一切(包括网络套接字)都是文件。

lsof -i 用来查看当前IPv4或IPv6的任务
lsof -i :<端口号> 用来查看指定端口的套接字线程(注意:冒号的右边不能有空格,左边随意)

从上面可以看到 clickhouse 默认只监听本地的8123端口。所以,在本地使用 /usr/bin/clickhouse-client --host localhost --port 8123 可以连接成功。但在外部就无法访问了(我这里 clickhouse 装在虚拟机上,外部主机使用 dbeaver 连接)

修改配置文件

查看 clickhouse-server 的配置文件 ls /etc/clickhouse-server ,以下两个文件待修改

  • config.xml
  • users.xml

vim 编辑器基础

/<关键词> 在文档中搜索关键词,并高亮显示。按 “回车”,光标聚焦到关键词处,按 “n” 键,搜索下一个
i 进入编辑模式
Esc 退出当前模式
:wq 保存并退出
:q! 强制退出(对于只读文件,必须加感叹号强制执行)
:wq! 强制保存退出(对于只读文件,必须加感叹号强制执行)

config.xml

vim /etc/clickhouse-server/config.xml
取消 <listen_host>::</listen_host> 的注释,这个表示监听来自任意IP地址的连接

users.xml

vim /etc/clickhouse-server/users.xml
确保来自任意IP地址的连接都能访问

<networks>
	<ip>::/0</ip>
</networks>

重新启动

/etc/init.d/clickhouse-server stop
/etc/init.d/clickhouse-server start
# 或
/etc/init.d/clickhouse-server restart

# 查看 clickhouse-server 状态
/etc/init.d/clickhouse-server status


再使用 lsof -i :8123 查看状态,可以发现地址由 localhost 变为 * 了。

连接clickhouse

使用开源的 dbeaver 连接 clickhouse的8123端口,可以看到,现在已经可以连上了

以上是关于clickhouse 无法远程连接的主要内容,如果未能解决你的问题,请参考以下文章

clickhoseclickhouse-client 无法登录 could not determine local time zone custom time zone file used

最强OLAP分析引擎-Clickhouse快速精通-上

最强OLAP分析引擎-Clickhouse快速精通-上

在Ubuntu20.04安装单节点ClickHouse22.8.4并解决DB::NetException: Connection refused NETWORK_ERROR导致无法远程访问的问题

在Ubuntu20.04安装单节点ClickHouse22.8.4并解决DB::NetException: Connection refused NETWORK_ERROR导致无法远程访问的问题

在Ubuntu20.04安装单节点ClickHouse22.8.4并解决DB::NetException: Connection refused NETWORK_ERROR导致无法远程访问的问题