Command line
machbase-neo serve
Start machbase-neo server process.
Flags
General flags
| flag | desc |
|---|---|
--host | listening network addr (default: 127.0.0.1)ex) --host 0.0.0.0 |
-c, --config | config file location ex) --config /data/machbase-neo.conf |
--pid | file path to save pid ex) --pid /data/machbase-neo.pid |
--data | path to database (default: ./machbase_home)ex) --data /data/machbase |
--file | path to files (default: .)ex) --file /data/files |
--backup-dir | path to the backup dir (default: ./backups)ex) --backup-dir /data/backups
Since v8.0.26 |
--pref | path to preference directory path. (default: ~/.config/machbase) |
--preset | database preset auto, fog, edge (default: auto)ex) --preset edge |
Database Sessions flags
Since v8.5.5| flag | desc |
|---|---|
--max-open-conn | the maximum number of open connections to the database. (default -1 unlimited) |
--max-idle-conn | the maximum number of connections in the idle connection pool. if <=0, no idle connections are retained.(default is 2) |
--conn-max-lifetime | the maximum amount of time a connection many be reused. Expired connections may be closed lazily before reuse. if <= 0, connections are not closed due to a connection’s age.(default is 10m) |
--conn-max-idletime | the maximum amount of time a connection may be idle. Expired connections may be closed lazily before resuse. if <= 0, connections are not closed due to a connection’s idle time.(default is 1m) |
Http flags
Since v8.0.43| flag | default | desc |
|---|---|---|
--http-linger | -1 | HTTP socket option, -1 means disable SO_LINGER, >=0 means set SO_LINGER |
--http-readbuf-size | 0 | HTTP socket read buffer size. 0 means use system default. |
--http-writebuf-size | 0 | HTTP socket write buffer size. 0 means use system default. |
--http-debug | false | Enable HTTP Ddebug log |
--http-debug-latency | "0" | Log HTTP requests that take longer than the specified duration to respond (e.g., “3s”). “0” means all request. |
--http-allow-statz | Allow source IPs (comma separated) to access /db/statz API. default allows only 127.0.0.1. |
Log flags
| flag | default | desc |
|---|---|---|
--log-filename | - (stdout) | log file path ex) --log-filename /data/logs/machbase-neo.log |
--log-level | INFO | log level. TRACE, DEBUG, INFO, WARN, ERROR ex) --log-level INFO |
--log-append | true | append existing log file. |
--log-rotate-schedule | @midnight | time scheduled log file rotation |
--log-max-size | 10 | file max size in MB |
--log-max-backups | 1 | maximum log file backups |
--log-max-age | 7 | maximum days in backup files |
--log-compress | false | gzip compress the backup files |
--log-time-utc | false | use UTC time for logging |
Listener flags
| flag | default | desc |
|---|---|---|
--shell-port | 5652 | ssh listen port |
--mqtt-port | 5653 | mqtt listen port |
--mqtt-sock | /tmp/machbase-neo-mqtt-5653.sock | mqtt unix socket |
--http-port | 5654 | http listen port |
--http-sock | /tmp/machbase-neo-http-5654.sock | http unix socket |
--mach-port | 5656 | machbase native listen port |
Since the default of
--host is the loopback address, it is not allowed to access machbase-neo from the remote hosts.Set
--host <host-address> or --host 0.0.0.0 for accepting the network connections from remote clients.If execute machbase-neo serve with no flags,
$ machbase-neo serveit is equivalent with
$ machbase-neo serve --host 127.0.0.1 --data ./machbase_home --file . --preset automachbase-neo shell
Start machbase-neo shell. It will start interactive mode shell if there are no other arguments.
Flags
| flag (long) | default | desc |
|---|---|---|
-s, --server | 127.0.0.1:5654 | machbase-neo’s HTTP address. e.g. --server 127.0.0.1:5654env: NEOSHELL_HOST |
--user | sys | user name. env: NEOSHELL_USER |
--password | manager | password. env: NEOSHELL_PASSWORD |
When machbase-neo shell starts, it is looking for the user name and password
from OS’s environment variables NEOSHELL_HOST, NEOSHELL_USER and NEOSHELL_PASSWORD.
Then if the flags --server, --user and --password are provided,
it will override the provided values instead of the environment variables.
Precedence of username and password
Command line flags
If --server, --user, --password is provided? Use the given values
Environment variables
If $NEOSHELL_HOST (on windows %NEOSHELL_HOST%) is set? Use the value as the server address.
If $NEOSHELL_USER (on windows %NEOSHELL_USER%) is set? Use the value as the user name.
If $NEOSHELL_PASSWORD (on windows %NEOSHELL_PASSWORD%) is set? Use the value as the password.
Default
None of those are provided? Use default value 127.0.0.1:5654, sys and manager.
Practical usage
For the security, use instant environment variables as below example.
$ NEOSHELL_PASSWORD='my-secret' machbase-neo shell --user sysBe aware when you use --password flag, the secret can be exposed by simple ps command as like an example below.
$ machbase-neo shell --user sys --password manager$ ps -aef |grep machbase-neo
501 13551 3598 0 9:33AM ttys000 0:00.07 machbase-neo shell --user sys --password managerRun Query
machbase-neoΒ» select binary_signature from v$version;
ββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β ROWNUM β BINARY_SIGNATURE β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β 1 β 8.0.2.develop-LINUX-X86-64-release-standard β
ββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
a row fetched.Create Table
machbase-neoΒ» create tag table if not exists example (
name varchar(20) primary key,
time datetime basetime,
value double summarized
);
executed.Schema Table
machbase-neoΒ» desc example;
ββββββββββ¬ββββββββ¬βββββββββββ¬βββββββββ
β ROWNUM β NAME β TYPE β LENGTH β
ββββββββββΌββββββββΌβββββββββββΌβββββββββ€
β 1 β NAME β varchar β 20 β
β 2 β TIME β datetime β 8 β
β 3 β VALUE β double β 8 β
ββββββββββ΄ββββββββ΄βββββββββββ΄βββββββββInsert Table
machbase-neoΒ» insert into example values('tag0', to_date('2021-08-12'), 100);
a row inserted.Select Table
machbase-neoΒ» select * from example;
ββββββββββ¬βββββββ¬ββββββββββββββββββββββ¬ββββββββ
β ROWNUM β NAME β TIME(LOCAL) β VALUE β
ββββββββββΌβββββββΌββββββββββββββββββββββΌββββββββ€
β 1 β tag0 β 2021-08-12 00:00:00 β 100 β
ββββββββββ΄βββββββ΄ββββββββββββββββββββββ΄ββββββββ
a row fetched.Drop Table
machbase-neoΒ» drop table example;
executed.Sub commands
explain
Syntax explain [--full] <sql>
Shows the execution plan of the sql.
machbase-neoΒ» explain select * from example where name = 'tag.1';
PROJECT
TAG READ (RAW)
KEYVALUE INDEX SCAN (_EXAMPLE_DATA_0)
[KEY RANGE]
* IN ()
VOLATILE INDEX SCAN (_EXAMPLE_META)
[KEY RANGE]
*export
export [options] <table>
arguments:
table table name to read
options:
-o,--output <file> output file (default:'-' stdout)
-f,--format <format> output format
csv csv format (default)
json json format
--compress <method> compression method [gzip] (default is not compressed)
--[no-]heading print header message (default:false)
--[no-]footer print footer message (default:false)
-d,--delimiter csv delimiter (default:',')
--tz timezone for handling datetime
-t,--timeformat time format [ns|ms|s|<timeformat>] (default:'ns')
consult "help timeformat"
-p,--precision <int> set precision of float value to force roundimport
import [options] <table>
arguments:
table table name to write
options:
-i,--input <file> input file, (default: '-' stdin)
-f,--format <fmt> file format [csv] (default:'csv')
--compress <alg> input data is compressed in <alg> (support:gzip)
--no-header there is no header, do not skip first line (default)
--charset set character encoding, if input is not UTF-8
--header first line is header, skip it
--method write method [insert|append] (default:'insert')
--create-table create table if it doesn't exist (default:false)
--truncate-table truncate table ahead importing new data (default:false)
-d,--delimiter csv delimiter (default:',')
--tz timezone for handling datetime
-t,--timeformat time format [ns|ms|s|<timeformat>] (default:'ns')
consult "help timeformat"
--eof <string> specify eof line, use any string matches [a-zA-Z0-9]+ (default: '.')show info
Display the server information.
machbase-neoΒ» show info;
ββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ
β NAME β VALUE β
ββββββββββββββββββββββΌββββββββββββββββββββββββββββββ€
β build.version β v2.0.0 β
β build.hash β #c953293f β
β build.timestamp β 2023-08-29T08:08:00 β
β build.engine β static_standard_linux_amd64 β
β runtime.os β linux β
β runtime.arch β amd64 β
β runtime.pid β 57814 β
β runtime.uptime β 2h 30m 57s β
β runtime.goroutines β 45 β
β mem.sys β 32.6 MB β
β mem.heap.sys β 19.0 MB β
β mem.heap.alloc β 9.7 MB β
β mem.heap.in-use β 13.0 MB β
β mem.stack.sys β 1,024.0 KB β
β mem.stack.in-use β 1,024.0 KB β
ββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββshow ports
Display the server’s interface ports
machbase-neoΒ» show ports;
βββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β SERVICE β PORT β
βββββββββββΌβββββββββββββββββββββββββββββββββββββββββ€
β http β tcp://127.0.0.1:5654 β
β mach β tcp://127.0.0.1:5656 β
β mqtt β tcp://127.0.0.1:5653 β
β shell β tcp://127.0.0.1:5652 β
βββββββββββ΄βββββββββββββββββββββββββββββββββββββββββshow tables
Syntax: show tables [-a]
Display the table list. If flag -a is specified, the result includes the hidden tables.
machbase-neoΒ» show tables;
ββββββββββ¬βββββββββββββ¬βββββββ¬ββββββββββββββ¬ββββββββββββ
β ROWNUM β DB β USER β NAME β TYPE β
ββββββββββΌβββββββββββββΌβββββββΌββββββββββββββΌββββββββββββ€
β 1 β MACHBASEDB β SYS β EXAMPLE β Tag Table β
β 2 β MACHBASEDB β SYS β TAG β Tag Table β
β 3 β MACHBASEDB β SYS β TAGDATA β Tag Table β
ββββββββββ΄βββββββββββββ΄βββββββ΄ββββββββββββββ΄ββββββββββββshow table
Syntax show table [-a] <table>
Display the column list of the table. If flag -a is specified, the result includes the hidden columns.
machbase-neoΒ» show table example -a;
ββββββββββ¬ββββββββ¬βββββββββββ¬βββββββββ¬βββββββββββ
β ROWNUM β NAME β TYPE β LENGTH β DESC β
ββββββββββΌββββββββΌβββββββββββΌβββββββββΌβββββββββββ€
β 1 β NAME β varchar β 100 β tag name β
β 2 β TIME β datetime β 31 β basetime β
β 3 β VALUE β double β 17 β β
β 4 β _RID β long β 20 β β
ββββββββββ΄ββββββββ΄βββββββββββ΄βββββββββ΄βββββββββββshow meta-tables
machbase-neoΒ» show meta-tables;
ββββββββββ¬ββββββββββ¬βββββββββββββββββββββββββ¬ββββββββββββββ
β ROWNUM β ID β NAME β TYPE β
ββββββββββΌββββββββββΌβββββββββββββββββββββββββΌββββββββββββββ€
β 1 β 1000020 β M$SYS_TABLESPACES β Fixed Table β
β 2 β 1000024 β M$SYS_TABLESPACE_DISKS β Fixed Table β
β 3 β 1000049 β M$SYS_TABLES β Fixed Table β
β 4 β 1000051 β M$TABLES β Fixed Table β
β 5 β 1000053 β M$SYS_COLUMNS β Fixed Table β
β 6 β 1000054 β M$COLUMNS β Fixed Table β
......show virtual-tables
machbase-neoΒ» show virtual-tables;
ββββββββββ¬ββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββ
β ROWNUM β ID β NAME β TYPE β
ββββββββββΌββββββββββΌββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββ€
β 1 β 65 β V$HOME_STAT β Fixed Table (stat) β
β 2 β 93 β V$DEMO_STAT β Fixed Table (stat) β
β 3 β 227 β V$SAMPLEBENCH_STAT β Fixed Table (stat) β
β 4 β 319 β V$TAGDATA_STAT β Fixed Table (stat) β
β 5 β 382 β V$EXAMPLE_STAT β Fixed Table (stat) β
β 6 β 517 β V$TAG_STAT β Fixed Table (stat) β
......show users
machbase-neoΒ» show users;
ββββββββββ¬ββββββββββββ
β ROWNUM β USER_NAME β
ββββββββββΌββββββββββββ€
β 1 β SYS β
ββββββββββ΄ββββββββββββ
a row fetched.show license
machbase-neoΒ» show license;
ββββββββββ¬βββββββββββ¬βββββββββββββββ¬βββββββββββ¬βββββββββββββ¬βββββββββββββββ¬ββββββββββββββββββββββ
β ROWNUM β ID β TYPE β CUSTOMER β PROJECT β COUNTRY_CODE β INSTALL_DATE β
ββββββββββΌβββββββββββΌβββββββββββββββΌβββββββββββΌβββββββββββββΌβββββββββββββββΌββββββββββββββββββββββ€
β 1 β 00000023 β FOGUNLIMITED β VUTECH β FORESTFIRE β KR β 2024-04-22 15:56:14 β
ββββββββββ΄βββββββββββ΄βββββββββββββββ΄βββββββββββ΄βββββββββββββ΄βββββββββββββββ΄ββββββββββββββββββββββ
a row fetched.session list
Syntax: session list
Since v8.0.17
machbase-neoΒ» session list;
ββββββ¬ββββββββββββ¬ββββββββββ¬βββββββββββββ¬ββββββββββ¬ββββββββββ¬βββββββββββ
β ID β USER_NAME β USER_ID β STMT_COUNT β CREATED β LAST β LAST SQL β
ββββββΌββββββββββββΌββββββββββΌβββββββββββββΌββββββββββΌββββββββββΌβββββββββββ€
β 25 β SYS β 1 β 1 β 1.667ms β 1.657ms β CONNECT β
ββββββ΄ββββββββββββ΄ββββββββββ΄βββββββββββββ΄ββββββββββ΄ββββββββββ΄βββββββββββsession kill
Syntax session kill <ID>
Since v8.0.17
session stat
Syntax: session stat
Since v8.0.17
machbase-neoΒ» session stat;
ββββββββββββββββββ¬ββββββββ
β NAME β VALUE β
ββββββββββββββββββΌββββββββ€
β CONNS β 1 β
β CONNS_USED β 17 β
β STMTS β 0 β
β STMTS_USED β 20 β
β APPENDERS β 0 β
β APPENDERS_USED β 0 β
β RAW_CONNS β 1 β
ββββββββββββββββββ΄ββββββββdesc
Syntax desc [-a] <table>
Describe table structure.
machbase-neoΒ» desc example;
ββββββββββ¬ββββββββ¬βββββββββββ¬βββββββββ¬βββββββββββ
β ROWNUM β NAME β TYPE β LENGTH β DESC β
ββββββββββΌββββββββΌβββββββββββΌβββββββββΌβββββββββββ€
β 1 β NAME β varchar β 100 β tag name β
β 2 β TIME β datetime β 31 β basetime β
β 3 β VALUE β double β 17 β β
ββββββββββ΄ββββββββ΄βββββββββββ΄βββββββββ΄βββββββββββmachbase-neo restore
Syntax machbase-neo restore --data <machbase_home_dir> <backup_dir>
Since v8.0.17
Restore database from backup.
$ machbase-neo restore --data <machbase home dir> <backup dir>machbase-neo version
Show version and engine info.

machbase-neo gen-config
Prints out default config template.
$ machbase-neo gen-config β΅
define DEF {
LISTEN_HOST = flag("--host", "127.0.0.1")
SHELL_PORT = flag("--shell-port", "5652")
MQTT_PORT = flag("--mqtt-port", "5653")
HTTP_PORT = flag("--http-port", "5654")
......