yum安装ClickHouse、mysql并配置ClickHouse关联Mysql

1、 yum安装mysql5.7

  • 下载mysql的yum源配置
 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  • 安装mysql的yum源
yum -y install mysql57-community-release-el7-11.noarch.rpm
  • yum方式安装mysql
yum -y install mysql-server  --nogpgcheck
  • 启动mysql
systemctl start mysqld.service;
systemctl status mysqld.service;
  • 查看mysql临时密码
cat /var/log/mysqld.log| grep password
  • 使用临时密码进入命令行
mysql -uroot -p

  输入返回的临时密码进入mysql

  • 修改root密码

        必须首先修改密码,不修改其他所有的命令不可以使用。(注意在mysql内部输入命令需以;结尾,退出mysql输入exit;后 回车)

grant all privileges on *.* to 'root'@'%' identified by '123456Admin@123' with grant option;
  •   刷新配置使密码生效
flush privileges;
  • 修改mysql默认的密码策略,使mysql可以设置为简单密码
set global validate_password_policy=0;
set global validate_password_length=1;
  •  刷新配置
flush privileges;
  • 修改root用户的密码为123456
alter user 'root'@'localhost' identified by '123456';
  • 修改mysqld.cnf文件,设置远程 MySQL 数据库
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

          找到

  bind-address = 127.0.0.1

          修改bind-address为*:: 或 0.0.0.0

bind-address = 0.0.0.0
  • 重启mysql使配置生效后,可通过客户端工具远程连接mysql
sudo systemctl restart mysql

2、yum安装Clickhouse

  • 安装 YUM 工具包
sudo yum install -y yum-utils
  • 添加 ClickHouse YUM 仓库
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
  • 安装 ClickHouse 服务器和客户端
sudo yum install -y clickhouse-server clickhouse-client
  • 启用并启动 ClickHouse 服务
sudo systemctl enable clickhouse-server;
sudo systemctl start clickhouse-server;
sudo systemctl status clickhouse-server;
  • 连接到 ClickHouse 客户端(默认无密码)
clickhouse-client
  • 修改默认用户密码

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

echo -n 123456789 | openssl dgst -sha256

        如设置密码为123456789可直接使用

15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225

        编辑 /etc/clickhouse-server/users.xml 文件

sudo vi /etc/clickhouse-server/users.xml 

        在 users.xml 文件中,将 <password_sha256_hex> 标签的值设置为生成的哈希值。之前的 <password> 标签需要注释掉。

<password_sha256_hex>15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225</password_sha256_hex>

        重启服务使配置生效

systemctl restart clickhouse-server

        测试登录

clickhouse-client --password

        使用默认用户名 default 和配置的密码 连接到 ClickHouse 客户端

clickhouse-client --user default --password 123456789
  • 配置远程登录

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

sudo vi /etc/clickhouse-server/config.xml

        找到以下内容打开注释或直接添加

<listen_host>::1</listen_host>
<listen_host>0.0.0.0</listen_host>

        重启服务使配置生效

systemctl restart clickhouse-server

        此处可能启动失败,无法远程连接8123端口,查找9000、8123对应的PID,kill掉再启动即可

lsof -i:9000;
lsof -i:8123;
kill -9 PID;
  • 修改数据目录

        停止 ClickHouse 服务

sudo systemctl stop clickhouse-server

        创建新的数据目录

sudo mkdir -p /data/clickhouse; 
sudo mkdir -p /data/clickhouse/tmp;

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

sudo vi /etc/clickhouse-server/config.xml

        找到 <path> 和 <tmp_path> 标签,并更改为新的目录路径:

<path>/data/clickhouse/</path> 
<tmp_path>/data/clickhouse/tmp/</tmp_path>

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

sudo mv /var/lib/clickhouse/* /data/clickhouse/

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

sudo chown -R clickhouse:clickhouse /data/clickhouse;
sudo chmod -R 700 /data/clickhouse;

        重启 ClickHouse 服务

sudo systemctl start clickhouse-server

3、配置 MySQL和ClickHouse实时同步

  • 配置mysql

        msyql启用二进制日志(binlog),修改/etc/my.cnf配置,这是实现Clickhouse-mysql实时同步的必要条件。

sudo vi /etc/my.cnf

         修改或添加以下内容

server-id=1 
log-bin=mysql-bin 
binlog_format=ROW
gtid_mode = ON 
enforce_gtid_consistency = ON

        重启 MySQL 应用更改

systemctl restart mysqld

        查看bin_log配置,mysql客户端执行sql

show variables like '%log_bin%';

        MySQL中创建具有同步权限的用户并刷新配置,用于clickhouse同步mysql数据

        (这里需要注意要用*.*,不可以指定数据库,否则会报错)

CREATE USER 'ckroot'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT, RELOAD, SELECT ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;

        在mysql中创建用于关联测试的数据库cktest

  • 配置clickhouse

        使用 ClickHouse 客户端中,执行以下命令启用 MaterializedMySQL 引擎。:

SET allow_experimental_database_materialized_mysql = 1;

        同步mysql中cktest数据库,在clickhouse中创建cktest库并同步mysql中的cktest,配置mysql的连接信息

CREATE DATABASE cktest ENGINE = MaterializedMySQL('mysqlIP:3306', 'cktest', 'ckroot', '123456');
  • 验证同步

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

use mysql_db
SHOW TABLES FROM mysql_db;

        在msyql中创建表后在clickhouse客户端中执行以下sql,如返回表信息则说明同步成功

SELECT * FROM cktest.表名;

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值