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.表名;