如何让 clickhouse 获取新的 users.xml 文件?

How to make clickhouse take new users.xml file?

我是否必须重新启动 clickhouse 才能使其读取 users.xml 的任何更新? 有没有办法判断 "reload" clickhouse?

这些文件在运行时重新加载,无需重新启动服务器。

你可以注意到配置文件夹有几个文件,比如

config-preprocessed.xml
config.xml
users-preprocessed.xml
users.xml

.*-preprocessed.xml 用于已解析的配置,因此您将看到它何时加载和解析。

我不建议修改文件“/etc/clickhouse-server/config.xml”或“etc/clickhouse-server/user.xml'因为升级ClickHouse后会被重写,自定义设置会丢失

子文件夹'/etc/clickhouse-server/config.d/'和'/etc/clickhouse-server/users.d/' 用于相对存储 'config.xml' 和 'user.xml' 的覆盖。

config.xml”的覆盖示例:

  1. config.d/config.xml
<?xml version="1.0"?>
<yandex>
    <listen_host replace="replace">::</listen_host>

    <dictionaries_config replace="replace">dictionaries/*.xml</dictionaries_config>

    <openSSL>
        <client>
            <verificationMode replace="replace">none</verificationMode>
        </client>
    </openSSL>
</yandex>
  1. config.d/cluster.xml
<?xml version="1.0"?>    
<yandex>
    <remote_servers>
        <your_cluster>
        <!--  topology definition  -->
        </your_cluster>
    </remote_servers>
    <zookeeper>
      <!--  ..  -->
    </zookeeper>
</yandex>
  1. config.d/kafka.xml
<?xml version="1.0"?>
<yandex>
    <!-- The default configuration for Kafka Engine Table (https://clickhouse.yandex/docs/en/operations/table_engines/kafka/#configuration). -->
    <kafka>
        <bootstrap_servers>11.22.33.44:6667,11.22.33.55:6667,11.22.33.66:6667</bootstrap_servers>
        <auto_offset_reset>latest</auto_offset_reset>
    </kafka>

    <!-- The Topics configurations. -->
    <kafka_topic_name>
        <group_id>clickhouse-group_id</group_id>
    </kafka_topic_name>
</yandex>

users.xml”的覆盖示例:

  1. 用户。d/user.xml
<?xml version="1.0"?>
<yandex>
    <users>
        <default>
            <password replace="replace">hello_clickhouse</password>
        </default>

        <readonly>
            <password replace="replace">hello</password>
        </readonly>
    </users>
</yandex>

config overrides的另一个例子。

详见ClickHouse Configuration files.