crateDB底层用elasticsearch开发,多表搜索和子查询功能要比elasticsearch强大很多。官网地址https://crate.io/
1.安装java
我一般喜欢yum安装,如果没有特殊需要yum安装即可
#查看可以安装java哪些版本
yum list java*
#选择好版本后进行安装
yum install java-1.8.0-openjdk*
2.需要创建执行crate的用户,root下不能启动,这点需要注意
useradd crate
3.创建存放crateDB的文件夹,然后启动安装crateDB脚本,等待安装结束即可
#我将crateDB存放在了/data下
mkdir /data
#指定权限
chown -R crate.crate /data
#切换到crate用户并且执行官方脚本
su - crate
cd /data
bash -c "$(curl -L try.crate.io)"
4.安装结束后就可以使用了,需要注意的是安装后不是后台运行,需要给停止然后重新启动(配置文件我这里没有修改)
ctrl+c #强制结束
./bin/crate -d #后台启动
5.需要注意的是python下启动crash脚本会报错,需要手动升级脚本到2.7以上,
我这里使用的是最新的python版本。
#安装依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
#下载python版本,现在稳定版本是3.6.4并且解压
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar xvzf Python-3.6.4.tgz
mv Python-3.6.4 python-3.6.4
cd python-3.6.4
#编译安装python
./configure --prefix=/usr/local/python3.6
make
make install
#替换之前的版本
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python
#查看当前pthon版本
python -V
#修改yum配置,不然会报错
vi /usr/bin/yum
将第一行的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6
6.创建UI界面的用户名,并创建权限,一般情况下本机安装crateDB直接访问localhost:4200会直接进入UI界面,不用账号密码,但是生产环境需要用户名密码,这样就需要借助crash脚本来生成。crash脚本其实就是sql命令行模式,非常方便,但是如果使用UI界面的话就可以不用登录服务器这样更方便。
#启动脚本
./bin/crash
#创建账号密码(需要注意的是默认用户有crate该用户不能修改密码,也不能删除)
CREATE USER test WITH (password = '123456');
#赋予权限
GRANT DQL TO test;
GRANT DDL TO test;
GRANT DML TO test;
#这样test就拥有所有权限了
7.我并不想暴露我服务器的ip地址,所以加了一个域名去访问,如果认为没事儿的话可以省略这一步,但是需要注意开放4200端口。
#nginx转发配置
server {
listen 80;
server_name crate.test.com; #自己的域名
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
#proxy_redirect off;
proxy_connect_timeout 180;
proxy_read_timeout 180;
proxy_send_timeout 180;
proxy_pass http://127.0.0.1:4200;
}
}
8.最后就可以使用了,需要注意的是crateDB语句和sql语句还是有区别的。