kwbase CLI 部署

前提条件

  • 已获取 KaiwuDB 裸机安装包
  • 待部署节点的硬件配置、操作系统、软件依赖和端口满足安装部署要求
  • 安装用户为 root 用户或拥有 sudo 权限的普通用户。

说明

本节介绍的 kwbase CLI 部署方式仅适用于裸机部署

步骤

  1. 登录待部署节点,进入安装包目录下的 packages 目录。

  2. 安装依赖包和服务器组件。

    • DEB 包系统(Debian/Ubuntu):

      dpkg -i ./kaiwudb-libcommon-<版本号>.deb ./kaiwudb-server-<版本号>.deb
      
    • RPM 包系统(CentOS/RHEL):

      rpm -ivh ./kaiwudb-libcommon-<版本号>.rpm ./kaiwudb-server-<版本号>.rpm
      
  3. 切换至程序目录:

    cd /usr/local/kaiwudb/bin
    
  4. (可选)如需采用安全部署模式,执行以下步骤创建证书:

    1. 创建证书存放目录:

      mkdir -p /usr/local/kaiwudb/certs
      
    2. 生成证书和密钥。

      • TLS 安全模式:

        # 创建数据库证书颁发机构及密钥
        ./kwbase cert create-ca --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key && \
        
        # 创建安装数据库用户的客户端证书及密钥(USERNAME 替换为实际用户名)
        ./kwbase cert create-client $USERNAME --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key && \
        
        # 创建节点服务器证书及密钥
        ./kwbase cert create-node 127.0.0.1 localhost 0.0.0.0 --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key
        
      • TLCP 安全模式:

        # 创建数据库证书颁发机构及密钥
        ./kwbase cert create-ca --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key --tlcp && \
        
        # 创建安装数据库用户的客户端证书及密钥(USERNAME 替换为实际用户名)
        ./kwbase cert create-client $USERNAME --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key --tlcp && \
        
        # 创建节点服务器证书及密钥
        ./kwbase cert create-node 127.0.0.1 localhost 0.0.0.0 --certs-dir=/usr/local/kaiwudb/certs --ca-key=/usr/local/kaiwudb/certs/ca.key --tlcp
        
  5. 启动数据库。

    • 非安全模式:

      ./kwbase start-single-node --insecure \
          --listen-addr=0.0.0.0:26257 \
          --http-addr=0.0.0.0:8080 \
          --store=/var/lib/kaiwudb
      
    • TLS 安全模式:

      ./kwbase start-single-node \
          --certs-dir=/usr/local/kaiwudb/certs \
          --listen-addr=0.0.0.0:26257 \
          --http-addr=0.0.0.0:8080 \
          --store=/var/lib/kaiwudb
      
    • TLCP 安全模式:

      ./kwbase start-single-node \
          --certs-dir=/usr/local/kaiwudb/certs \
          --listen-addr=0.0.0.0:26257 \
          --http-addr=0.0.0.0:8080 \
          --store=/var/lib/kaiwudb \
          --tlcp
      
  6. 查看数据库状态。

    • 非安全模式:

      ./kwbase node status --insecure --host=<address_of_any_alive_node>
      
    • TLS 安全模式:

      ./kwbase node status --certs-dir=/usr/local/kaiwudb/certs --host=<address_of_any_alive_node>
      
    • TLCP 安全模式:

      ./kwbase node status --certs-dir=/usr/local/kaiwudb/certs --host=<address_of_any_alive_node> --tlcp
      
  7. (可选)创建数据库用户并授予用户管理员权限。如果跳过该步骤,系统将默认使用部署数据库时的用户,且无需密码访问数据库。

    • 非安全模式(不带密码):

      ./kwbase sql --host=127.0.0.1:$local_port --insecure \
      -e "create user $username; \
          grant admin to $username with admin option;"
      
    • TLS 安全模式(带密码):

      ./kwbase sql --certs-dir=/usr/local/kaiwudb/certs --host=127.0.0.1:$local_port \
      -e "create user $username with password \"$user_password\"; \
          grant admin to $username with admin option;"
      
    • TLCP 安全模式(带密码):

      ./kwbase sql --certs-dir=/usr/local/kaiwudb/certs --tlcp --host=127.0.0.1:$local_port \
      -e "create user $username with password \"$user_password\"; \
          grant admin to $username with admin option;"
      
  8. 使用数据库部署用户登录数据库并配置许可证。

    1. 登录数据库。

      • 非安全模式(不带密码):
      ./kwbase sql --host=127.0.0.1:$local_port --insecure
      
      • TLS 安全模式(带密码):
      ./kwbase sql --certs-dir=/usr/local/kaiwudb/certs --host=127.0.0.1:$local_port
      
      • TLCP 安全模式(带密码):
      ./kwbase sql --certs-dir=/usr/local/kaiwudb/certs --tlcp --host=127.0.0.1:$local_port
      
    2. 复制许可证文件中的许可证码,通过以下命令将许可证码添加到已启动的数据库中。

      SET CLUSTER SETTING cluster.license = '<your-license-code>';
      

      其中,your-license-code 应替换为从 .lic 文件中提取的许可证码。有关 cluster.license 参数的详细信息,参见集群实时参数

    3. (可选)查看许可证信息。

      SHOW LICENSE;
      
  9. 部署完成后,可通过 kwbase CLI KaiwuDB JDBCKaiwuDB 开发者中心连接并管理 KaiwuDB。