编译流程
- github 拉代码
git clone https://github.com/ClickHouse/ClickHouse.git
- 创建子目录
cd ClickHouse/
mkdir build
cmake ..
- 编译需要升级到gcc-8 g++8:
GCC version must be at least 8. For example, if GCC 8 is available under
gcc-8, g++-8 names, do the following: export CC=gcc-8 CXX=g++-8;
我的操作系统是ubuntu
所以
$ sudo apt-get install gcc-8 g++-8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
update-alternatives: using /usr/bin/gcc-8 to provide /usr/bin/gcc (gcc) in auto mode
然后看gcc
版本升级到8.3.0
$ gcc -v
Using built-in specs.
...
gcc version 8.3.0 (Ubuntu 8.3.0-6ubuntu1~18.04.1)
- 删掉cmake相关缓存
$ rm -rf CMakeCache.txt CMakeFiles
重新跑有这样的错误:
Submodules are not initialized. Run
git submodule update --init --recursive
然后初始化git submodule
:
$ git submodule update --init --recursive
因为我用的是v2ray
+ proxychains4
,勉强把那些包下下来了
然后继续跑
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/home/ubuntu/click ..
ninja all
然后我发现内存要比较大,而且硬盘要ssd,不然会编译特别慢
使用docker-compse启动
- 第一步创建文件
config.xml
和users.xml
- 第二步 新建docker-compose.yml
version: '3'
services:
clickhouse-server:
image: yandex/clickhouse-server
container_name: clickhouse-server
hostname: clickhouse-server
ports:
- 8123:8123
expose:
- 9000
- 9009
volumes:
- ./config.xml:/etc/clickhouse-server/config.xml
- ./users.xml:/etc/clickhouse-server/users.xml
- ./data:/var/lib/clickhouse
- ./log/clickhouse-server.log:/var/log/clickhouse-server/clickhouse-server.log
- ./log/clickhouse-server.err.log:/var/log/clickhouse-server/clickhouse-server.err.log
- 第二步
docker-compose up
使用clickhouse-client 连接
docker run -it --rm --link clickhouse-server:clickhouse-server --net clickhouse_default yandex/clickhouse-client --host clickhouse-server --user seluser --password 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92