记录 macos 链接 win10 wsl2 ubuntu clickhouse 记录

遇到了许多问题 顺序应该不同

首先就是 链接的客户端是 DBeaver 链接的时候要 选择版本 低版本的 用legacy,

 

 

 

驱动也很重要, 下不到驱动的可以用网上找的驱动来安装

 这里有个驱动收集

https://github.com/moshowgame/dbeaver-driver-all

 

有的时候 会有类名的问题 但是报错很离谱 会报  

dbeaver clickhouse 链接错误 code:46 Unknown function currentUser

 

还有些问题 比如测试链接不上 这个链接里面会有答案

https://www.cnblogs.com/illusioned/p/12727738.html#:~:text=SQL%20%E9%94%99%E8%AF%AF%20[16

 比如 我macos 远程连接的成功 查询表的时候报错 

cannot override setting(result_overflow_mode) in readonly mode

  最后 用 下面的图 解决的

 

配置远程连接 可以参考这个链接

https://blog.csdn.net/jiankang66/article/details/120610105#:~:text=clickhouse

可以简单通过curl http://192.168.110.your ip:8123 测试下 如果返回ok 基本说明能连通

 

 

对了 如果是win10 wsl 做主机 还要做端口映射才能 远程访问

你的 ClickHouse 服务器运行在 WSL (Windows Subsystem for Linux) 中,并且你的主机 IP 地址是 192.168.110.105。WSL 的网络设置与 Windows 主机的网络设置略有不同,因此这可能是导致你无法通过 http://192.168.110.105:8123/ 访问 ClickHouse 的原因。

在 WSL 中,网络接口的配置和端口绑定有一些特殊情况。以下是一些可能的解决方案和调试步骤:

1. 检查 WSL 网络配置

WSL 的网络设置可能导致网络流量无法直接从 Windows 主机访问 WSL 内的服务。WSL 中的服务通常绑定在 localhost 上,而不是绑定到外部 IP 地址。

  • 确认 ClickHouse 绑定在正确的 IP 地址上

    在 WSL 中,通常 localhost 是绑定在 127.0.0.1 上。你可以尝试确认 ClickHouse 是否绑定在 0.0.0.0172.26.32.132 上。

    在 WSL 中检查服务绑定情况:

    bash复制代码
    sudo netstat -tuln | grep 8123
    

    确保输出中有类似 0.0.0.0:8123172.26.32.132:8123 的条目。

2. 访问 WSL 服务的外部 IP

WSL 的网络设置使得 localhost 只能在 WSL 内部访问,但你可以尝试从 Windows 主机访问 WSL 的 IP 地址。

  • 使用 WSL 的 IP 地址进行访问

    在 WSL 中运行 ip addr show 看到的 IP 地址(例如 172.26.32.132)是 WSL 的内部 IP 地址。你可以尝试使用这个 IP 地址访问 ClickHouse:

    bash复制代码
    curl http://172.26.32.132:8123/
    

    如果可以访问,说明 ClickHouse 正在 WSL 内部正常运行。

3. WSL 到 Windows 主机的网络映射

WSL 2 中的网络映射不同于 WSL 1。如果你使用的是 WSL 2,WSL 和 Windows 之间的网络配置可能会有所不同。

  • 配置端口转发

    WSL 2 使用 Hyper-V 网络虚拟化,因此需要配置端口转发以便从 Windows 主机访问 WSL 中的服务。你可以使用 Windows 的 netsh 命令来设置端口转发。例如:

    cmd复制代码
    netsh interface portproxy add v4tov4 listenport=8123 listenaddress=0.0.0.0 connectport=8123 connectaddress=172.26.32.132
    

    这会将 Windows 主机上的端口 8123 转发到 WSL 内的 172.26.32.132:8123

4. 检查 WSL 版本和设置

确认你使用的是 WSL 2。WSL 2 提供了更完善的网络支持。

  • 检查 WSL 版本

    bash复制代码
    wsl --list --verbose
    

    如果使用的是 WSL 1,可以考虑升级到 WSL 2 以获得更好的网络支持。

5. 重新启动服务和网络

  • 重启 ClickHouse 服务

    bash复制代码
    sudo systemctl restart clickhouse-server
    
  • 重启 WSL 实例

    cmd复制代码
    wsl --shutdown
    

    然后重新启动 WSL 实例。

 

防火墙也要做相应的设置

你的 Windows 主机可以通过 http://192.168.110.105:8123/ 访问 ClickHouse,但局域网中的其他设备无法访问,可能有以下几个原因:

1. 检查 Windows 防火墙设置

防火墙可能阻止了局域网中的其他设备访问 ClickHouse 的端口。

  • 允许端口 8123 通过防火墙

    你可以创建一个新的入站规则,允许端口 8123 的 TCP 流量:

    1. 打开“控制面板”。
    2. 选择“系统和安全” > “Windows 防火墙”。
    3. 选择“高级设置”。
    4. 在“入站规则”中,选择“新建规则”。
    5. 选择“端口”,点击“下一步”。
    6. 选择“TCP”并指定端口 8123,点击“下一步”。
    7. 选择“允许连接”,点击“下一步”。
    8. 按照提示完成规则创建。

2. 检查网络设置

确保你的 Windows 主机和局域网中的其他设备在同一网络段上,且没有网络隔离问题。

  • 确认 Windows 主机的网络配置

    确保 Windows 主机的 IP 地址和子网掩码设置正确:

    cmd复制代码
    ipconfig
    

    确保 IP 地址与局域网中的其他设备在同一网段(例如:192.168.110.x)。

3. 确认网络连接

确保局域网中的其他设备能够与 Windows 主机通信。

  • 测试网络连接

    从局域网中的另一台设备,尝试使用 ping 命令测试 Windows 主机的连通性:

    bash复制代码
    ping 192.168.110.105
    

    如果无法 ping 通,可能是网络连接问题。

4. 检查 ClickHouse 配置

确保 ClickHouse 配置允许从外部网络访问。

  • 检查 ClickHouse 配置

    确认 ClickHouse 的 config.xml 配置文件中 <listen_host> 设置为 0.0.0.0,这样 ClickHouse 会监听所有网络接口的流量:

    xml复制代码
    <listen_host>0.0.0.0</listen_host>
    

5. 确保 WSL 和 Windows 网络正常

WSL 的网络配置有时可能会影响外部访问。

  • 重启 WSL

    确保 WSL 网络设置生效:

    cmd复制代码
    wsl --shutdown
    

    然后重新启动 WSL 实例。

6. 检查 ClickHouse 的日志

查看 ClickHouse 的日志文件,确认没有其他配置错误或问题:

bash复制代码
sudo tail -f /var/log/clickhouse-server/clickhouse-server.log

7. 检查是否有网络隔离或路由问题

如果你使用的网络环境有复杂的路由或隔离设置,确保局域网的流量可以到达 Windows 主机上的 ClickHouse 服务。

 

要远程链接 需要 在  clickhouse config.xml  里面 修改 listen_host 为 <listen_host>::</listen_host>

但是我修改了 一直没用 最后改成了 如下就可以正常连接了

<listen_host>0.0.0.0</listen_host> <!-- 使用IPv4地址 -->

因为在不断的修改 config.xml 所以 也要 

sudo tail -f /var/log/clickhouse-server/clickhouse-server.log

及时查看下有没有报错

可以用 xmllint 来检查下 这个文档有没有基础的语法错误

xmllint --noout /etc/clickhouse-server/config.xml

记得要重启 和查看 clickhouse-server 的状态

sudo systemctl restart clickhouse-server
sudo systemctl status clickhouse-server

 

最后 可以把 DBeaver 设置 maven 下载仓库为 aliyun

https://blog.csdn.net/weixin_41562020/article/details/104973044

 

ck 还可以交互式查询 

https://blog.csdn.net/u012637358/article/details/116257061

posted @ 2024-09-04 18:43  dontbealarmedimwithy  阅读(34)  评论(0编辑  收藏  举报