先来分析,现在influxdb单机版是免费的。但集群版本是收费的。基于目前我的业务就是收集一下传感器上的数据。所以选择了 单机版,在自己的服务器先部署起来跑一下。
目前在阿里云上也可以直接买到influxdb的服务,上面是集群版本。但是他不是最新的版本,他的版本是1.7.6 因此为了以后方便,迁移上去。所以我选择了1.7.8版本。
为什么不使用最新版本,2.0版本和1.几的版本,变化太多,并且版本很新,有什么坑也不清。所以使用一个旧版本。这样找起资料也多一点。
好了,开始正题,如何安装。
1.下载安装包wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8_linux_amd64.tar.gz2.解压
tar xf influxdb-1.7.8_linux_amd64.tar.gz3.创建几个关键的目录
自己找到自己的数据盘,然后重新创建一下以后想自定义数据存放在那里。
/datadrive/software/influxdb-1.7.8-1
自己创建四个目录
mkdir data mkdir log mkdir meta mkdir wal4.修改配置文件
之后,我们需要改这配置文件中这几个默认的目录
egrep -v "^#|^$|#" influxdb.conf4.1.先修改meta目录
vi influxdb.conf4.2.修改data目录
4.3.修改wal-dir目录
最后改完后,我们再做一个对比
egrep -v "^#|^$|#" influxdb.conf4.4.说一下这几个目录的作用
- data 存放最终存储的数据,文件以.tsm结尾
- meta 存放数据库元数据
- wal 存放预写日志文件
我们到安装软件的usr/bin目录下,有一个influx命令,直接通过这个命令就可以启动。
5.1.前台启动方式我们可以通过如下命令,可以查看到该进程:
ps aux|grep influxdb
如果我们通过kill -9 进程号
这样的命令杀掉进程后,再次访问的时候,就会显示一下报错信息:
启动成功后,我们可以使用它自带的客户端进去:
5.2.后台启动的方式来到我们的安装目录,然后自己编写一个脚本:
vi startinfluxdb.sh
nohup bin/influxd -config ../etc/influxdb/influxdb.conf >/dev/null 2>log &
保存后,给该脚本赋一个可执行的权限。
chmod +x startinfluxdb.sh
以后启动,直接通过脚本就可以启动,不用再去写那些配置信息
6.基本语法 6.1.数据库操作显示数据库:show databases 创建数据库:create databases influxdb 删除数据库:drop database influxdb 使用数据库: use influxdb6.2.数据保留策略 6.2.1保留策略的语法
create retention policyon duration replication [shard duration ] [DEFAULT]
retention_policy_name:保留策略的名称。
database_name:为哪个数据库创建保留策略。
duration:该保留策略对应的数据过期时间。
replication :副本因子。一般单机版默认都是1
shard duration:分片组的默认时长。
[DEFAULT]:是否为默认的策略。
6.2.2.创建数据库保留策略create retention policy "influx_retention" on "test" duration 30d replication 1 DEFAULT;
例子:
create retention policy "influx_retention" on "test" duration 30d replication 1 DEFAULT;6.2.3.查看保留期
SHOW RETENTION POLICIES ON test;6.2.4.修改保留期
ALTER RETENTION POLICY "influx_retention" ON test DURATION 15d;
注意:这里的"influx_retention"是我们自己自定义的策略名字。
从原来的720h变成了360h。
6.2.5.删除保留期DROP RETENTION POLICY "influ_retention" ON test;7.表的增删改查 7.1.显示所有表
show measurements;7.2.插入数据
insert weather,altitude=1000,area=北 temperature=11,humidity=-4
特别注意:创建表的时候,不用提前去创建,只要我们创建数据的时候,会自动创建表。
7.3.查询表select * from weather;设置一下时间显示格式
precision rfc33397.4.删除表
DROp MEASUREMENT weather8.用户操作 8.1.显示用户
show users8.2.用户创建 8.2.1.普通用户创建并设置密码
CREATE USER influx WITH PASSWORD 'influxdb'8.2.2.管理员用户
create user "admin" with password 'admin' with all privileges;8.2.3.修改用户密码
SET PASSWORD FOR influx = 'influx'8.3.删除用户
drop user admin9.数据库的访问权限 9.1.用户授权 9.1.1.授权用户数据库的操作权限
GRANT ALL PRIVILEGES ON influxdb TO influx9.1.2.赋予用户管理员权限
GRANT ALL PRIVILEGES TO influx
备注:只能使用admin权限才可以操作数据库。
9.2.撤销授权 9.2.1.撤销用户数据库操作权限Revoke ALL PRIVILEGES ON influxdb FROM influx9.2.2.撤销用户管理权限
Revoke ALL PRIVILEGES FROM influx10.开启用户登陆认证 10.1.开启登陆认证
在influxdb配置文件influxdb.conf中,开启用户登陆认证,添加如下内容:
auth-enabled = true
改完配置后,重启应用。
10.2.开启认证后有密码登陆bin/influx -username influx -password influx
注意:如果没有登陆的用户没有权限,则会显示上面的错误信息。
11.最后在springboot中怎么引入使用了influxdb-java,版本选择了2.22
源代码链接:https://github.com/influxdata/influxdb-java



