ClickHouse更换默认端口和绑定端口到0.0.0.0

首发于: https://www.jwldata.com/archives/90.html

ClickHouse安装后,默认client连接端口是9000,这个端口跟CDH的cloudera manager agent的默认端口相同。且ClickHouse默认9000端口是绑定在127.0.0.1上的,无法从其他机器连接ClickHouse。

修改config.xml文件权限

chmod u+w /etc/clickhouse-server/config.xml

修改端口和绑定地址

vi /etc/clickhouse-server/config.xml

找到<tcp_port>9000</tcp_port>的配置项,将默认值9000改成其他,比如我改成9020

    <!-- Port for interaction by native protocol with:
         - clickhouse-client and other native ClickHouse tools (clickhouse-benchmark, clickhouse-copier);
         - clickhouse-server with other clickhouse-servers for distributed query processing;
         - ClickHouse drivers and applications supporting native protocol
         (this protocol is also informally called as "the TCP protocol");
         See also 'tcp_port_secure' for secure connections.
    -->
    <tcp_port>9020</tcp_port>

找到<listen_host>::</listen_host>的配置项,取消注释,这样就同时支持IPv4和IPv6了。
也可以选择取消注释<listen_host>0.0.0.0</listen_host>,就仅支持IPv4,不允许IPv6。

    <!-- Listen specified address.
         Use :: (wildcard IPv6 address), if you want to accept connections both with IPv4 and IPv6 from everywhere.
         Notes:
         If you open connections from wildcard address, make sure that at least one of the following measures applied:
         - server is protected by firewall and not accessible from untrusted networks;
         - all users are restricted to subset of network addresses (see users.xml);
         - all users have strong passwords, only secure (TLS) interfaces are accessible, or connections are only made via TLS interfaces.
         - users without password have readonly access.
         See also: https://www.shodan.io/search?query=clickhouse
      -->
    <listen_host>::</listen_host>

    <!-- Same for hosts without support for IPv6: -->
    <!-- <listen_host>0.0.0.0</listen_host> -->

    <!-- Default values - try listen localhost on IPv4 and IPv6. -->
    <!--
    <listen_host>::1</listen_host>
    <listen_host>127.0.0.1</listen_host>
    -->

重启ClickHouse

systemctl restart clickhouse-server

测试连接

更改默认client端口后,需要指定port参数指定端口。

clickhouse-client --port 9020 

### Vue3 全局样式引用失效解决方案 在 Vue3 中,如果全局样式无法正确应用到组件上,通常是因为样式的加载机制或者作用域设置出现了问题。以下是针对该问题的具体分析解决方案: #### 1. **确保全局样式文件被正确引入** 如果使用的是 `SCSS` 或其他预处理器,在项目的入口文件(通常是 `main.js` 或 `main.ts`)中导入全局样式文件是一个常见的做法。例如: ```javascript import './assets/styles/global.scss'; ``` 这种方式可以确保所有的组件都能访问到这些全局定义的样式[^2]。 #### 2. **检查 Scoped CSS 的影响** 当组件设置了 `scoped` 属性时,Vue 会自动为该组件内的 HTML 添加唯一的属性前缀,从而限制样式的作用范围。这可能导致某些全局样式无法生效。可以通过以下方法解决此问题: - 使用深度选择器 `/deep/`、`>>>` 或者 `::v-deep` 来穿透 scoped 样式的影响。例如: ```scss ::v-deep(.some-class) { color: red; } ``` 此外需要注意,不同版本的 Vue 不同的构建工具可能对深度选择器的支持有所不同。对于较新的 Vue 版本,推荐使用 `::v-deep`[^5]。 #### 3. **触发样式编译** 在一些情况下,即使全局样式已经正确定义并引入,但如果某个组件未实际触发动态样式更新,则可能会导致样式丢失或不生效。一种简单的方法是在组件内手动声明一个无意义的样式占位符来强制触发编译过程。例如: ```html <style lang="scss" scoped> .placeholder-style {} </style> ``` 上述代码片段中的 `.placeholder-style {}` 是为了确保组件能够正常解析 SCSS 并完成编译流程[^4]。 #### 4. **调整 Element Plus 样式覆盖策略** 对于像 `Element Plus` 这样的 UI 库,默认情况下其组件内部结构较为复杂,单纯依赖外部全局样式难以实现有效覆盖。此时可采用如下技巧: - 利用 `append-to-body` 配置项分离弹窗容器至 body 下层; - 结合深选器技术定位目标 DOM 节点实施定制化设计; 可参见具体案例说明文档[^1]。 --- ### 示例代码展示 假设我们需要在一个 Vue3 项目中统一设定按钮的基础颜色风格,并让所有地方均适用这一规则: ```scss // 文件路径:src/assets/styles/global.scss .button-primary { background-color: blue !important; } ``` 接着确认上述文件已被纳入主程序初始化环节之中: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import './assets/styles/global.scss'; createApp(App).mount('#app'); ``` 最后验证效果是否达成预期即可。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值