InfluxDB 部署的多种方式,多个版本
InfluxDB 部署的多种方式,多个版本
一、InfluxDB二进制部署
# 下载
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.4.0-linux-amd64.tar.gz
# 解压
tar -zxvf influxdb2-2.4.0-linux-amd64.tar.gz -C /app
# 启动 【可以看到数据目录/root/.influxdbv2/】
[root@node01 influxdb2_linux_amd64]# ./influxd
2023-07-28T17:26:44.219453Z info Welcome to InfluxDB {"log_id": "0jJOSxzl000", "version": "v2.4.0", "commit": "de247bab08", "build_date": "2022-08-18T19:41:15Z", "log_level": "info"}
2023-07-28T17:26:44.220667Z info Resources opened {"log_id": "0jJOSxzl000", "service": "bolt", "path": "/root/.influxdbv2/influxd.bolt"}
2023-07-28T17:26:44.220786Z info Resources opened {"log_id": "0jJOSxzl000", "service": "sqlite", "path": "/root/.influxdbv2/influxd.sqlite"}
2023-07-28T17:26:44.225371Z info Using data dir {"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "path": "/root/.influxdbv2/engine/data"}
2023-07-28T17:26:44.225432Z info Compaction settings {"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "max_concurrent_compactions": 1, "throughput_bytes_per_second": 50331648, "throughput_bytes_per_second_burst": 50331648}
2023-07-28T17:26:44.225443Z info Open store (start) {"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "op_name": "tsdb_open", "op_event": "start"}
2023-07-28T17:26:44.225492Z info Open store (end) {"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "op_name": "tsdb_open", "op_event": "end", "op_elapsed": "0.049ms"}
2023-07-28T17:26:44.225531Z info Starting retention policy enforcement service {"log_id": "0jJOSxzl000", "service": "retention", "check_interval": "30m"}
2023-07-28T17:26:44.225546Z info Starting precreation service {"log_id": "0jJOSxzl000", "service": "shard-precreation", "check_interval": "10m", "advance_period": "30m"}
2023-07-28T17:26:44.226917Z info Starting query controller {"log_id": "0jJOSxzl000", "service": "storage-reads", "concurrency_quota": 1024, "initial_memory_bytes_quota_per_query": 9223372036854775807, "memory_bytes_quota_per_query": 9223372036854775807, "max_memory_bytes": 0, "queue_size": 1024}
2023-07-28T17:26:44.228795Z info Configuring InfluxQL statement executor (zeros indicate unlimited). {"log_id": "0jJOSxzl000", "max_select_point": 0, "max_select_series": 0, "max_select_buckets": 0}
2023-07-28T17:26:44.235146Z info Starting {"log_id": "0jJOSxzl000", "service": "telemetry", "interval": "8h"}
2023-07-28T17:26:44.235204Z info Listening {"log_id": "0jJOSxzl000", "service": "tcp-listener", "transport": "http", "addr": ":8086", "port": 8086}
启动完成后前往浏览器访问:
IP地址:8086
二、rpm包部署
- 配置文件默认在: /etc/influxdb/influxdb.conf
- 默认数据目录在:/var/lib/influxdb
- 默认端口:
- bind-address = ":8088" # 备份恢复时使用,默认值为8088
- bind-address = ":8086" # web页面访问端口,应用连接端口
# 下载 [这版本没web-ui页面]
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_64.rpm
# 安装
yum localinstall -y influxdb-1.7.6.x86_64.rpm
# 启动
systemctl start influxdb
systemctl status influxdb
systemctl stop influxdb
# 工具InfluxDBStudio,在Windows平台下的开源数据库管理工具,帮你简化查询数据库的步骤,提高工作效率
下载地址: https://github.com/CymaticLabs/InfluxDBStudio/releases
# 安装chronograf
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.7.6.x86_64.rpm
yum localinstall -y chronograf-1.7.6.x86_64.rpm
# 启动
systemctl start chronograf
systemctl status chronograf
systemctl stop chronograf
三、常见使用命令
# 使用命令: influx 进入influxDB
[root@node01 app]# influx
Connected to http://localhost:8086 version 1.7.6
InfluxDB shell version: 1.7.6
Enter an InfluxQL query
>
# 创建用户权限
CREATE USER 用户名 WITH PASSWORD '密码' WITH ALL PRIVILEGES
# 创建一个管理员用户,并且给了所有权限(也就是rw)
> create user zhangsan with password '123' with all privileges;
# 用户名密码访问
4: influx -username 用户名 -password 密码
5: 使用exit退出influxDB,
> exit
vim /etc/influxdb/influxdb.conf
修改auth-enable=true,
重启influxDB,
通过 influx -username 用户名 -password 密码 访问
# 创建数据库
6: create database stp
# 设置持久化策略
SHOW RETENTION POLICIES ON stp
7: CREATE RETENTION POLICY "15_day" ON "stp" DURATION 15d REPLICATION 1 DEFAULT
四、增删查
Influxdb和mysql的结构一样,只是关键字不同
mysql | influxdb | 单位 |
---|---|---|
databaase | database | 数据库 |
table | measurement | 表 |
record | point | 一行记录 |
Point由时间戳(time)、数据(field)、标签(tags)组成。
1.创建数据库
#创建数据库
> create database t1;
#查看已经创建的数据库
> show databases;
name: databases
name
----
_internal
t1
2.删除数据库
> drop database t1;
> show databases;
name: databases
name
----
_internal
3.创建表(measurement)
注意点:
measurement不用单独创建,在第一次插入数据的时候会自动创建
measurement中没有数据,表也就不存在了
measurement没有update语句,无法修改measurement中的内容,只能删除某一条,在重新插入
4.插入数据
1、通过sql写入
> use t1;
> insert add_test,name=YiHui,phone=110 user_id=21,email="xx@126.com",age=18i,boy=true
2、导入文本文件写入
# DML
# CONTEXT-DATABASE: pirates
influx -import -path=test.txt -precision=s
3、备份恢复数据库
# 数据备份命令
influxd backup -portable -database t1 /tmp/t1
# 数据恢复命令
influxd restore -portable -db data-center -newdb data-center /tmp/t1
小结一下四种类型的指定方式
类型 | 方式 | 示例 |
---|---|---|
float | 数字 |
user_id=21 |
int | 数字i |
age=18i |
boolean | true/false |
boy=true |
String | "" or '' |
email=”bangzewu@126.com“ |
5.其他
在 InfluxDB 中,可以使用 InfluxQL(Influx Query Language)或 Flux(新的查询语言)来查看表。
使用 InfluxQL 查询语言查看表:
使用 SHOW MEASUREMENTS 命令列出所有测量值(表):
SHOW MEASUREMENTS
使用 SHOW TAG KEYS ON <database_name> FROM <measurement_name> 命令来列出指定测量值中的标签键:
SHOW TAG KEYS ON <database_name> FROM <measurement_name>
使用 SHOW FIELD KEYS ON <database_name> FROM <measurement_name> 命令来列出指定测量值中的字段键:
SHOW FIELD KEYS ON <database_name> FROM <measurement_name>
其中 <database_name> 是数据库名称,<measurement_name> 是测量值(表)名称。
使用 Flux 查询语言查看表:
使用 import "influxdata/influxdb/schema" 导入 schema 包。
使用 schema.measurements() 函数获取所有测量值(表):
import "influxdata/influxdb/schema"
schema.measurements()
通过执行以上查询语句,您将能够查看 InfluxDB 中的表信息和测量值列表。
请注意,在使用 InfluxQL 或 Flux 查询之前,请确保已连接到正确的数据库,并具有适当的权限进行查询操作。
在 InfluxDB 中,您可以使用 influxd backup 命令来备份数据库,并使用 influxd restore 命令来恢复数据库。
备份数据库的命令语法如下:
influxd backup -portable -database <database_name> -host <host_address> <backup_directory>
其中 <database_name> 是要备份的数据库名称,<host_address> 是 InfluxDB 服务器的主机地址,<backup_directory> 是备份文件存储的目录路径。
例如,要备份名为 "mydb" 的数据库到 "/backup" 目录下,命令如下:
influxd backup -portable -database mydb -host localhost:8088 /backup
恢复数据库的命令语法如下:
influxd restore -portable -db <database_name> -newdb <new_database_name> -host <host_address> <backup_directory>
其中 <database_name> 是要恢复的数据库名称,<new_database_name> 是新创建的数据库名称(可选),<host_address> 是 InfluxDB 服务器的主机地址,<backup_directory> 是备份文件所在的目录路径。
例如,要将备份文件 "/backup" 恢复到名为 "mydb_restored" 的新数据库中,命令如下:
influxd restore -portable -db mydb -newdb mydb_restored -host localhost:8088 /backup
请注意,上述命令中的 -portable 标志表示以可移植格式进行备份和恢复操作。
这些命令可以帮助您在 InfluxDB 中进行数据库的备份和恢复。确保在执行任何数据操作之前,先停止 InfluxDB 服务。详细了解命令参数和其他备份恢复选项,请参考 InfluxDB 官方文档。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署