以修改 max_memory_usage 为例,示范下临时修改与永久修改
临时修改SET 命令可以修改的变量都存储在 system.settings 表中。表中的 name 和 value 字段均是 String 类型的
使用 clickhouse-client 以 9000 端口,TCP 的方式登录 clickhouse-server,对 max_memory_usage 进行设置
# 改变 max_memory_usage,改变生效后退出 clickhouse-client SELECt name,value FROM system.settings WHERe name='max_memory_usage'; SET max_memory_usage = 20000000000; SELECt name,value FROM system.settings WHERe name='max_memory_usage'; exit; # 重新进入查看,发现数值又恢复初始值了 clickhouse-client SELECt name,value FROM system.settings WHERe name='max_memory_usage';
注意:该命令只能在 clickhouse-client【9000,tcp】中执行,若在 DBeaver 【8123,http】中执行,会报错。
准确的说是 SET 命令只能在 TCP 环境下被执行(clickhouse-client连接远程服务器也可以跑通)
编辑 vim /etc/clickhouse-server/users.xml,然后进行修改
10000000000 30000000000
修改后,直接在 clickhouse-client 查询(中途不用退出重进),可以发现数值已经被改变了。
这是因为clickhouse每隔一定的时间,会监控配置文件是否被改变,如果被改变则重新加载各项参数



