Linux 安装InfluxDB1.8,配置及使用

本文介绍了如何在Linux CentOS 7系统中安装InfluxDB1.8版本,包括服务端启动、客户端使用以及Spring Boot应用的整合步骤。
摘要由CSDN通过智能技术生成

Linux 安装InfluxDB1.8版本(CentOS 7)

Influxdb是一个时序数据库,其保存metric的在某一系列时间点的状态。这些点状态包含时间戳

1.安装以及服务端启动

# root状态下 进入local目录
cd /usr/local

# 新建influxDB目录
mkdir influxDB

# 然后执行 进行等待下载
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0_linux_amd64.tar.gz

# 解压下载好的influxdb-1.8.0_linux_amd64.tar.gz
tar -zxvf influxdb-1.8.0_linux_amd64.tar.gz

# 修改解压好的目录名,我这里解压好没有修改的目录名是influxdb-1.8.0-1, 修改后influxdb-1.8
mv influxdb-1.8.0-1 influxdb-1.8

# 进入修改好的influxdb-1.8里的bin目录;
cd influxdb-1.8/usr/bin
# 进入之后此时的路径是/usr/local/influxDB/influxdb-1.8/usr/bin,用pwd命令查看(验证路径是否正确)
pwd

# 书写启动脚本(用于: 后台启动脚本)
vi startup.sh
# 输入内容如下(注意这也是内容#!/bin/bash),保存退出
#!/bin/bash
nohup /usr/local/influxDB/influxdb-1.8/usr/bin/influxd -config \
/usr/local/influxDB/influxdb-1.8/etc/influxdb/influxdb.conf \
&>/usr/local/influxDB/influxdb-1.8/var/log/influxdb.log &

#保存退出然后授执行权
chmod +x startup.sh

# 书写开机自动启动服务
vi /etc/systemd/system/influxdb-server.service
# 输入内容:
[Unit]
Description=influxdb-server
After=network.tartget

[Service]
Type=forking
ExecStart=/usr/local/influxDB/influxdb-1.8/usr/bin/startup.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 重新加载服务
systemctl daemon-reload
# 使服务开机自动运行
systemctl enable influxdb-server
# 现在启动服务
systemctl start influxdb-server



#无需操作此处:-----------------------------------------------------------------------------#
## 基本systemctl命令
# 重新加载服务(新加了服务之后进行)
systemctl daemon-reload
# 使服务开启自动运行
systemctl enable influxdb-server
# 启动服务
systemctl start influxdb-server
# 停止服务
systemctl stop influxdb-server
# 重启服务
systemctl restart influxdb-server
# 查看服务状态(Active: inactive (dead)无效; Active: failed失败; Active: active (running)成功)
systemctl status influxdb-server



## 后台运行: nohup 参数 &
# 后台启动 (会在当前路径下生成一个nohup.out类似启动后的信息日志)
nohup influxd &
# 后台启动 (当前路径把启动后的信息指定输出在日志文件上)
nohup influxd &>inf.log &



## 查看进程是否 启动 以及 端口 是否给程序使用 -aux 与 -ef(区别是-ef Unix/Linux都直接支持)
# 查看influxdb服务端进程是否启动 (注意这是只启动influxd命令,不带 -config influxdb.conf,用此命令才能看到)
ps -ef | grep influxd
# 查看influxdb服务端进程是否启动 (注意这是只启动influxd命令,不带 -config influxdb.conf,用此命令是看不到的)
ps -ef | grep influxdb
#是否启动判断 (一行没有启动)
root     21806  21618  0 23:07 pts/0    00:00:00 grep --color=auto influx
#是否启动判断 (两行已经启动)
root     21822     1 42 23:07 pts/0    00:00:02 influxd -config influxdb.conf
root     21842  21618  0 23:07 pts/0    00:00:00 grep --color=auto influx
# 查看influxdb服务端端口是否启动
netstat -tunlp | grep 8086
#是否已启用端口判断 (没有显示就是没有; 显示就是启动如下 pid/influxd)
tcp6	0	0 :::8086	:::*	LISTEN		23701/influxd    

2.客户端启动及使用

# 进入bin目录
cd /usr/local/influxDB/influxdb-1.8/usr/bin/

# 启动连接-port 8086端口 数据库
./influx -port 8086

# 添加管理员
create user "root" with password '123456' with all privileges

# 创建数据库test_aemesc
create database test_aemesc

# 使用test_aemesc数据库
use test_aemesc

# 创建表(InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表)
insert TestData,devKey=黄敏婷,identi=对不起 value="今天实在没能回你信息" 1617840905000186512

# 查询是否数据保存
select * from TestData



#无需操作此处:----------------------------------------------------------------------#
## 基本操作指令
# 显示用户
show users
# 查看数据库
show databases
# 查看所有的表(使用某个库才能进行具体操作表)
show measurements
# 查询某个表的数据
select * from 表名


# 创建数据库
create database test
# 使用数据库(使用某个库才能进行具体操作)
use test
# 创建表(InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表)
insert TestData,devKey=黄敏婷,identi=对不起 value="今天实在没能回你信息" 1617840905000186512
#TestData表的结构:timestamp + tag + filed的组成
	#timestamp : 时间戳,ms单位,每个记录都必然有这个属性,没有显示添加时,默认当前时间戳
    #tag: 标签,在database中,tag + measurement 一起构建索引参与索引创建,适合作为查询的过滤条件
       	#都是string类型,不需要引号将value包裹
    #field:存储数据,数据类型为: long, String, boolean, float
		#field如果创建时是string类型,需要加引号""
	#tag与tag之间用逗号分隔;field与field之间用逗号分隔
    #tag与field之间用空格分隔
		#insert measurement,tag=value,tag=value field=value,field=value timestamp
# 查看表内容
select * from TestData
#字段: time					devKey		identi		value 
#内容:1617840905000186512 	黄敏婷 		对不起 		今天实在没能回你信息
# 查看所有tag  说明: 有devKey、identi tagType值都是String
show tag keys from TestData
# 查看所有field  说明: 有value fieIdType值是String "今天实在没能回你信息"
show field keys from TestData
# 条件查询  说明: 只能用单引号''
select * from TestData where devKey = '黄敏婷'
# 时间范围查询  说明: time 是时间戳(前面5分钟后的所有数据)
SELECT * FROM TestData WHERE time > now() - 5m


# 删除数据库
drop database test
# 删除表
drop measurement 表名


# 进入本地 port 8086端口数据库
influx -port 8086
# 可以使用-host和-port选项,连接到其他机器或者端口
influx -host 127.0.0.1 -port 8086

# 修改配置文件influxdb.conf
vi influxdb.conf
#[http]
  enabled = true 			#开启HTTP API
  bind-address = ":8086" 	#绑定的端口号
  auth-enabled = true 		#开启授权
#重新启动服务端,进入客户端需要验证登录(才能进行有效的操作)
influx -username root -password 123456


3.Spring Boot 整合InfluxDB

<!-- Maven依赖 -->
<dependency>
  <groupId>org.influxdb</groupId>
  <artifactId>influxdb-java</artifactId>
  <version>2.18</version>
</dependency>

# application.yml
spring:
  influx:
    url: http://localhost:8086 	#influxdb服务器的地址
    user: test 					#用户名
    password: 123456 			#密码
    database: test 				#指定的数据库
@SpringBootTest
public class TestInfluxdb {

	@Resource
    private InfluxDB influxDB;

	@Test
	void selectInfluxDB(){
    	QueryResult results = influxDB.query(new Query("select * from TestData", "test_aemesc"));
    	QueryResult.Result result = results.getResults().get(0);
		List<List<Object>> listList = reslut.getSeries().stream().map(QueryResult.Series::getValues).collect(Collectors.toList()).get(0);
		listList.forEach(temp-> System.out.println(temp));
		temp => [2021-04-08T00:15:05.000186512Z, 黄敏婷, 对不起, 今天实在没能回你信息]
		
		//QueryResult => QueryResult.getResults()、QueryResult.getError();
		//QueryResult.getResults() => List<QueryResult.Result>
		//QueryResult.Result => QueryResult.Result.getSeries()、QueryResult.Result.getError();
		//QueryResult.Result.getSeries() => List<QueryResult.Series>
		//QueryResult.Series => QueryResult.Series.getValues();
		//QueryResult.Series.getValues() => List<List<Object>>
		//List<Object> => [2021-04-08T00:15:05.000186512Z, 黄敏婷, 对不起, 今天实在没能回你信息]
    }
}
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值