准确!!ClickHouse同步MySQL详细步骤

1.安装配置ClickHouse

1.1 安装 ClickHouse

  1. 安装 YUM 工具包

    sudo yum install -y yum-utils
    
  2. 添加 ClickHouse YUM 仓库

    sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
    
  3. 安装 ClickHouse 服务器和客户端

    sudo yum install -y clickhouse-server clickhouse-client
    
  4. 启用并启动 ClickHouse 服务

    sudo systemctl enable clickhouse-server 
    sudo systemctl start clickhouse-server 
    sudo systemctl status clickhouse-server
    
  5. 连接到 ClickHouse 客户端(如果未设置密码):

    clickhouse-client
    

1.2 配置 ClickHouse

1.2.1 修改默认用户密码

  • 使用 OpenSSL 生成密码的 SHA256 哈希。

    echo -n 123456789 | openssl dgst -sha256
    
  • 编辑 /etc/clickhouse-server/users.xml 文件,在 users.xml 文件中,将 <password_sha256_hex> 标签的值设置为生成的哈希值。之前的 <password> 标签需要注释掉。

    <password_sha256_hex>15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225</password_sha256_hex>
    
  • 完成密码设置后,需要重启 ClickHouse 服务以应用更改。

    systemctl restart clickhouse-server
    
  • 测试登录以验证密码是否正确设置。

    clickhouse-client --password
    
  • 其它用户连接,使用默认用户名 default 和配置的密码 XXXXXX 连接到 ClickHouse 客户端。

    clickhouse-client --user default --password XXXXX
    

1.2.2 配置远程登录:

  • 编辑 /etc/clickhouse-server/config.xml 文件。

    sudo nano /etc/clickhouse-server/config.xml
    
  • 找到并取消注释(或添加)以下行以允许远程连接:

    <listen_host>0.0.0.0</listen_host>
    
  • 完成设置后,需要重启 ClickHouse 服务以应用更改。

    systemctl restart clickhouse-server
    

1.2.3 修改数据目录

  1. 停止 ClickHouse 服务

    • 停止 ClickHouse 服务以确保在移动数据时不会发生损坏。

      sudo systemctl stop clickhouse-server
      
  2. 创建新的数据目录

    • 如果新目录 /app/clickhouse 还不存在,需要先创建它。

      sudo mkdir -p /app/clickhouse 
      sudo mkdir -p /app/clickhouse/tmp
      
  3. 编辑配置文件

    • 修改 /etc/clickhouse-server/config.xml 文件中的数据目录设置。

      sudo nano /etc/clickhouse-server/config.xml
      
    • 找到 <path><tmp_path> 标签,并更改为新的目录路径:

      <!-- Path to data directory, with trailing slash. --> <path>/app/clickhouse/</path> 
      <tmp_path>/app/clickhouse/tmp/</tmp_path>
      
    • 在 nano 中,按 Ctrl + O 保存更改,然后按 Ctrl + X 退出。

  4. 移动现有数据(如果适用):

    • 将数据从默认目录 /var/lib/clickhouse/ 移动到新目录 /app/clickhouse/

      sudo mv /var/lib/clickhouse/* /app/clickhouse/
      
  5. 设置正确的权限

    • 确保新目录具有正确的权限,以便 ClickHouse 可以访问。

      sudo chown -R clickhouse:clickhouse /app/clickhouse 
      sudo chmod -R 700 /app/clickhouse
      
  6. 重启 ClickHouse 服务

    • 重启 ClickHouse 服务,并检查是否一切正常。

      sudo systemctl start clickhouse-server
      

2.配置 MySQL和ClickHouse实时同步

2.1 配置MySQL

  • 确保 MySQL 实例已启用二进制日志(binlog),这是实现实时同步的必要条件。编辑 MySQL 的配置文件/etc/my.cnf:

    [mysqld] 
    server-id=1 
    log-bin=mysql-bin 
    binlog_format=ROW
    
  • 配置 gtid_modeenforce_gtid_consistency。编辑 MySQL 的配置文件/etc/my.cnf:

    gtid_mode = ON 
    enforce_gtid_consistency = ON
    
  • 重启 MySQL 服务以应用这些更改。
    systemctl restart mysqld

2.2 配置 ClickHouse

2.2.1 基本配置

  • 登录到 ClickHouse。这边使用的是默认用户和密码:

    clickhouse-client --host 192.168.197.128 --user default --password AAAaaa
    
  • 启用 MaterializedMySQL 引擎。在 ClickHouse 客户端中,执行以下命令:

    SET allow_experimental_database_materialized_mysql = 1;
    

2.2.2 同步整个库

  • 在 ClickHouse 中创建一个新的数据库,使用 MaterializedMySQL 引擎连接到 MySQL test 数据库(需提前创建好,而且表中必须要有主键,没有主键无法同步)。需要写上 MySQL 服务器的地址、数据库名称、用户和密码:

    CREATE DATABASE mysql_test ENGINE = MaterializedMySQL('192.168.197.128:3306', 'test', '数据库用户', '数据库密码');
    

    这将创建一个名为 mysql_test 的新数据库,它将映射到 MySQL test 数据库。可以是同名。

2.2.3 同步库中的部分表

  • 创建一个新的 MaterializedMySQL 数据库,但在创建时使用 TABLE OVERRIDE 语句来指定只同步 aaabbb

     CREATE DATABASE mysql_db ENGINE = MaterializedMySQL('192.168.197.128:3306', '数据库', '账号', '密码') SETTINGS materialized_mysql_tables_list = 'aaa,bbb';
    

2.3 验证同步

  • 使用 ClickHouse 客户端检查是否成功同步了数据。可以列出所有同步的表:

    use mysql_db
    SHOW TABLES FROM mysql_db;
    
  • 进行一些查询以确保数据同步正常:

    SELECT * FROM mysql_test.表名;
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react+redux+antd-mobile 之 记账本案例

1.环境搭建 //使用CRA创建项目&#xff0c;并安装必要依赖&#xff0c;包括下列基础包 //1. Redux状态管理 - reduxjs/toolkit 、 react-redux //2. 路由 - react-router-dom //3. 时间处理 - dayjs //4. class类名处理 - classnames //5. 移动端组件库 - antd-mobile //6. 请…

linux常见基础指令

入门常见基础指令 ls、stat、 pwd 、cd、tree、 whoami、 touch、 mkdir、 rm 、 man、 cp、mv、cat、tac、echo、>、 >>、 < 、more、 less、 head、 tail、date、 cal、 find、 which、alias、whereis、grep、zip与unzip、 tar、bc、uname、xargs... 热键Tab、…

【信息安全原理】——期末复习(冲刺篇)

&#x1f4d6; 前言&#xff1a;快考试了&#xff0c;做篇期末总结&#xff0c;都是重点与必考点。 题型&#xff1a;简答题&#xff08;45分&#xff09;、协议分析题&#xff08;210分&#xff09;&#xff08;给一个报文或工作流程&#xff0c;分析存在的问题&#xff09;、…

操作系统:linux(在虚拟机上详细步骤安装)Centos

文章目录 前言&#xff1a;一、如何在自己的电脑上安装centos?二、在虚拟机上安装centos2.1安装步骤&#xff1a; 前言&#xff1a; 操作系统有&#xff1a;windows server 不开源的收费的、linux 开源的免费的&#xff0c;精简安装&#xff08;没有UI)。国产的操作系统有&am…

Pytest框架 —— 用例标记和测试执行篇!

pytest用例标记和测试执行篇 上一篇文章入门篇咱们介绍了pytest的前后置方法和fixture机制&#xff0c;这个章节主要给大家介绍pytest中的标记机制和用例执行的方法。pytest可以通过标记将数据传入于测试函数中&#xff0c;也可以通过标记中对执行的用例做筛选&#xff0c;接下…

linux安装openssh

linux安装openssh_千锋教育 OpenSSH是一个用于远程登录和文件传输的开源工具&#xff0c;它提供了安全的加密通信。在Linux系统上安装OpenSSH可以方便地进行远程管理和文件传输操作。 安装OpenSSH的步骤如下&#xff1a; 1. 检查是否已安装OpenSSH&#xff1a;在终端中输入以…

『亚马逊云科技产品测评』活动征文|云服务器如何快速搭建个人博客(图文详解)

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 文章目录 引言一、前期准备步骤1.1 准备一个亚马逊 EC2 服务器1.2 进入控…

过年过节通过html+css+js代码实现:超级好看的放烟花效果(含背景音乐)

文章目录&#xff1a; 一&#xff1a;放烟花 1. 运行效果 2.代码 二&#xff1a;新年快乐 1.运行效果 2.代码 一&#xff1a;放烟花 1. 运行效果 效果图◕‿◕✌✌✌ 过年过节通过htmlcssjs实现放烟花效果代码(含背景音乐) 2.代码 修改后缀为".html"的格式…

数模混合SoC芯片中LEF2Milkyway的golden flow

在数模混合芯片中的项目中&#xff0c;特别是数字模块很少甚至只有一个简单的数字控制逻辑时&#xff0c;我们要做数字模块的后端实现时&#xff0c;通常模拟那边会问我们实现需要他们提供哪些数据。 通常来说&#xff0c;我们可以让模拟设计提供数字模块的GDS或LEF文件即可。…

QT中的信号与槽的讲解

文章目录 信号及其特点槽及其特点代码演示标准信号与标准槽函数方式一方式二 自定义信号和槽connect()函数信号和槽函数存在函数重载的情况下Qt的信号槽机制注意事项 信号及其特点 信号&#xff1a;是一种特殊的函数&#xff0c;又称信号函数&#xff0c;俗称信号&#xff0c;…

了解CPU架构

uname -m # Linux查看CPU硬件架构 CPU 的指令集架构(Instruction Set Architecture)&#xff08;ISA&#xff09; CPU 的指令集架构&#xff0c;定义了 CPU 如何解析二进制代码中的 1 和 0。 ISA 主要根据 内存总线的宽度 分为至少两个子集。内存总线的宽度指的是 CPU 和 RAM …

java常见面试题:请解释一下Java中的常用安全框架,如Spring Security、Shiro等。

下面我将详细介绍Java中的两个常用安全框架&#xff1a;Spring Security和Shiro。 1. Spring Security Spring Security是一个强大的安全框架&#xff0c;它为基于Spring的应用程序提供了全面的安全解决方案。以下是Spring Security的一些主要特点&#xff1a; 主要特点&…

《妙趣横生的算法》(C语言实现)-第10章算法设计与数据结构面试题精粹

【10-1】输入一个字符串并将它输出&#xff0c;以ctrlz组合键表示输入完毕&#xff0c;要求将输入的字符串中多于1个的连续空格符合并为1个。 //10-1 2023年12月30日17点11分-17点18分 # include <stdio.h> int main() {char c;c getchar();//scanf("%c", &a…

【数据库设计和SQL基础语法】--用户权限管理--数据备份和恢复策略

一、引言 数据备份和恢复是数据库管理中至关重要的任务&#xff0c;对于确保数据安全性和业务连续性具有重大的意义。以下是一些关键的重要性方面&#xff1a; 防止数据丢失&#xff1a; 数据备份是防止因硬件故障、人为错误、恶意攻击或其他意外事件导致数据丢失的主要手段。…

<软考高项备考>《论文专题 - 37 采购管理(1) 》

1 成本管理基础 1.1 写作要点 过程定义、作用写作要点、思路规划采购管理规划采购管理是记录项目采购决策、明确采购方法&#xff0c;及识别潜在卖方的过程。作用:确定是否从项目外部获取货物和服务&#xff0c;如果是&#xff0c;则还要确定将在什么时间、以什么方式获取什么…

16. Mysql 自定义函数

文章目录 概述常见操作创建自定义函数自定义函数局部变量定义和赋值查看自定义函数删除自定义函数使用自定义函数 扩展-流程控制精选示例总结参考资料 概述 自定义函数&#xff0c;顾名思义就是是MySQL中用户自定义的函数&#xff0c;用于执行特定的操作或计算&#xff0c;并返…

项目实战--Message Queue

一. 概念篇 我们在学习多线程的时候,学习过生产者-消费者模型,为了实现解耦合和削峰填谷,引入了阻塞队列. 在实际的后端开发中,跨主机之间使用生产者消费者模型,也是非常普遍的需求,因此,阻塞队列会被封装成一个独立的服务器程序,实现更丰富的功能.这样的程序称为"消息队列…

GTK4 环境配置

1 安装gtk4包裹: # sudo yum install gtk4 gtk4-devel gtk4-devel-docs devhelp glib2 glib2-devel glib2-doc 2 安装 glade 4 git clone https://github.com/ag-python/cambalache.git 记住 把软件目录 复制到 一个你不会移动删除的地方(千万别删除这个软件文件夹 因为运行…

面试要点,算法,数据结构等练习大全

有趣的算法&#xff0c;面试常常碰到&#xff0c;多种语言实现~ 1 从数组中找出两个数字使得他们的和是给定的数字 tags: #hash 使用一个散列&#xff0c;存储数字和他对应的索引。然后遍历数组&#xff0c;如果另一半在散列当中&#xff0c;那么返回 这两个数的索引&#x…

Grafana监控数据可视化

Grafana 是一个可视化面板&#xff0c;有着非常漂亮的图表和布局展示&#xff0c;功能齐全的度量仪表盘和图形编辑器&#xff0c;支持 Graphite、zabbix、InfluxDB、Prometheus、OpenTSDB、Elasticsearch 等作为数据源&#xff0c;比 Prometheus 自带的图表展示功能强大太多&am…