前言
InfluxDB时序数据库常用命令主要涉及用户管理、数据库管理、数据操作(增删改查) 等方面。以下是根据多个来源整理的InfluxDB常用命令及其说明:
一、用户管理
1. 登录用户
java
> auth
username: admin
password:
>
2. 查看用户
java
SHOW USERS
3. 创建普通用户
java
CREATE USER "username" WITH PASSWORD 'password'
4. 创建管理员用户
java
CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES
5. 修改用户密码
java
SET PASSWORD FOR "username" = 'newpassword'
6. 权限授予
授予用户对数据库的所有权限
java
GRANT ALL PRIVILEGES ON db_name TO "username"
授予用户对所有数据库的所有权限
java
GRANT ALL PRIVILEGES TO "username"
7. 权限撤销
撤销用户对数据库的所有权限
java
REVOKE ALL PRIVILEGES ON db_name FROM "username"
撤销用户对所有数据库的所有权限
java
REVOKE ALL PRIVILEGES FROM "username"
二、数据库管理
1. 查看所有数据库
java
SHOW DATABASES
2. 创建数据库
java
CREATE DATABASE db_name
3. 删除数据库
java
DROP DATABASE db_name
4. 使用某个数据库
java
USE db_name
三、数据操作
1. 插入数据
InfluxDB中没有显式的新建表的语句,表(在InfluxDB中称为measurement)会在插入数据时自动创建。
java
INSERT INTO measurement_name,tag1=value1,tag2=value2 field_key=field_value [timestamp]
measurement_name:表名(测量指标名)。
tag1=value1,tag2=value2:索引(标签),用于快速查询。
field_key=field_value:字段名和字段值,字段值可以是数值、浮点型、布尔型等。
[timestamp]:时间戳,如果不指定则自动添加当前时间戳。
2. 查询数据
java
SELECT * FROM "measurement_name" WHERE condition LIMIT N
*:表示选择所有字段。
condition:查询条件,可以使用WHERE子句指定。
LIMIT N:限制返回的记录数。
还可以使用GROUP BY、ORDER BY等子句进行分组和排序。
3. 查看表(measurement)信息
查看所有表(measurement)
java
SHOW MEASUREMENTS
查看表的tag key
java
SHOW TAG KEYS FROM "measurement_name"
查看表的field key
java
SHOW FIELD KEYS FROM "measurement_name"
查看表的series
java
SHOW SERIES FROM "measurement_name"
4. 删除数据
InfluxDB没有直接删除单条记录的命令,但可以通过删除measurement(表)或配置数据保留策略来删除数据。
删除measurement(表)
java
DROP MEASUREMENT "measurement_name"
配置数据保留策略(Retention Policy, RP)
创建RP
java
CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 3w REPLICATION 1 DEFAULT
修改RP
java
ALTER RETENTION POLICY "rp_name" ON "db_name" DURATION 30d DEFAULT
删除RP
java
DROP RETENTION POLICY "rp_name" ON "db_name"
注意事项
以上命令主要适用于InfluxDB 1.x版本,InfluxDB 2.x版本的语法和命令有所不同,特别是查询语言从InfluxQL变为了Flux。
在使用InfluxDB时,应确保已正确安装并配置了数据库环境。
对于生产环境中的数据操作,建议先在测试环境中进行验证,以避免数据丢失或损坏。