您的位置 首页 linux 运维

人大金仓数据库(汇总)

1-KingbaseES V009R003C011 二进制安装-人大金仓数据库 : 连接

 

使用 Docker Compose 部署人大金仓(KingbaseES)数据库并设置为 PGSQL 模式,主要分为下载镜像、编写配置文件和启动服务三个步骤。以下是详细的操作指南:

1. 获取并导入镜像

人大金仓的 Docker 镜像并未上架到 Docker Hub 等公共仓库,您需要前往人大金仓官方下载中心(需注册登录)下载对应系统架构的 .tar 镜像包。

从官网下载,服务与支持,下载链接:

https://www.kingbase.com.cn/download.html#database

版本号,VO09R003C011

openEuler22.03

下载完成后,在终端执行以下命令将镜像导入到本地 Docker 中:

docker load -i kdb_x86_64_V008R006C008B0020.tar

(注:请将 kdb_x86_64_V008R006C008B0020.tar 替换为您实际下载的镜像文件名)

2. 编写 docker-compose.yml

在您的工作目录下创建一个 docker-compose.yml 文件。为了开启 PGSQL 兼容模式,关键在于环境变量 DB_MODE 的配置:

services:
  kingbase:
    # 替换为您导入镜像后实际显示的镜像名称和标签
    image: kingbase_v008r006c008b0020_single_x86:v1
    container_name: kingbase_db
    restart: unless-stopped
    privileged: true
    environment:
      # 设置为 pg 模式,实现 PostgreSQL 语法兼容
      - DB_MODE=pg
      - ENABLE_CI=no
      - NEED_START=yes
      # 设置初始化的超级用户和密码
      - DB_USER=system
      - DB_PASSWORD=Kingbase123
    volumes:
      # 将容器内数据目录挂载到宿主机,确保数据持久化
      - ./kingbase_data:/home/kingbase/userdata
    ports:
      # 将容器内的 54321 端口映射到宿主机的 5432 端口
      - "60001:54321"

 

权限配置:

mkdir -p ./kingbase_data
chmod -R 777 ./kingbase_data

 

核心配置说明:

  • DB_MODE=pg:此参数用于指定数据库的兼容模式,设置为 pg 即代表 PostgreSQL 模式(其他可选值包括 oraclemysql 等)。
  • 端口映射:人大金仓默认服务端口为 54321,这里将其映射到宿主机的 5432 端口,方便您使用常规的数据库客户端工具进行连接。
  • 数据持久化:必须将容器内的 /home/kingbase/userdata 目录挂载出来,否则容器重启或删除后数据将会丢失。

3. 启动与验证

docker-compose.yml 所在的目录下,执行以下命令启动数据库:

docker-compose up -d

启动成功后,您可以使用 DBeaver、Navicat 等数据库管理工具进行连接测试:

  • 主机:localhost
  • 端口:5432
  • 用户名:system
  • 密码:Kingbase123

日常运维提示:

  • 停止服务:docker-compose stop
  • 重启服务:docker-compose restart
  • 停止并删除容器(挂载卷内的数据不会丢失):docker-compose down

4 先测试数据库是否可以正常连接:

先测试数据库是否可以正常连接:
# 在宿主机上测试连接
docker exec -it kingbase_db bash

# 在容器内切换到 kingbase 用户
su - kingbase

需要密码,但是不知道密码。

# 尝试连接数据库
ksql -U system -d test


# 5. 在 ksql 中执行 SQL
\l          # 列出数据库
\dt         # 列出表
SELECT version();  # 查看版本
\q          # 退出 ksql




# 检查容器状态
docker ps | grep kingbase

# 查看数据库版本
docker exec -it kingbase_db ksql -U system -d template1 -c "SELECT version();"

# 创建测试数据库
docker exec -it kingbase_db ksql -U system -d template1 -c "CREATE DATABASE test_db;"

# 连接测试数据库
docker exec -it kingbase_db ksql -U system -d test_db -c "SELECT current_database();"

阿萨德分公司

5 使用 Navicat for PostgreSQL

人大金仓(KingbaseES)基于 PostgreSQL 开发,因此可以使用 Navicat for PostgreSQL 来连接。

 

由于人大金仓兼容 PostgreSQL 协议,选择 PostgreSQL 类型进行连接:
连接参数:
主机(Host): 172.16.2.23(你的服务器 IP)或 localhost(如果在本地)
端口(Port): 5432(根据 docker-compose.yaml 的映射)
初始数据库(Database): template1 或 test
用户名(Username): system(根据 docker-compose.yaml 配置)
密码(Password): Kingbase123(根据 docker-compose.yaml 配置)

在连接之前,需要确认人大金仓的配置允许远程访问:

# 进入容器
docker exec -it kingbase_db bash

# 切换到 kingbase 用户(如果当前是 root)
su - kingbase

# 检查 kingbase.conf 中的监听配置
cat /home/kingbase/userdata/data/kingbase.conf | grep listen_addresses

# 应该显示:
# listen_addresses = '*'  或者  listen_addresses = '0.0.0.0'

如果 `listen_addresses` 不是 `*` 或 `0.0.0.0`,需要修改:

# 编辑配置文件
vi /home/kingbase/userdata/data/kingbase.conf

# 找到并修改:
listen_addresses = '*'

# 保存退出后重启数据库
sys_ctl -D /home/kingbase/userdata/data restart

3. 配置 sys_hba.conf 允许远程连接

# 编辑认证配置文件
vi /home/kingbase/userdata/data/sys_hba.conf

# 添加以下行(在文件末尾):
# 允许所有 IP 使用密码认证
host    all    all    0.0.0.0/0    md5

# 或者只允许特定网段
host    all    all    192.168.1.0/24    md5

 

 

然后重启数据库:

 

sys_ctl -D /home/kingbase/userdata/data restart

 

在宿主机上测试(使用 ksql 客户端)

docker exec -it kingbase_db ksql -h localhost -p 54321 -U system -d template1

 

 

6 授权:

不授权 没法用,

 

下载 什么版本都可以, 然后挂载进去。

 

     # 挂载 License 文件
      - ./license.dat:/home/kingbase/install/kingbase/etc/license.dat:ro

 

查询licens 信息:

-- 1. 获取 License 基本信息(最重要)
SELECT get_license_info();

-- 2. 获取 License 剩余有效天数
SELECT get_license_validdays();

-- 3. 获取并行备份授权状态
SELECT get_license_paralleldump();

-- 4. 获取安全 MAC 授权状态
SELECT get_license_safemac();

-- 5. 获取 RMAN 备份授权状态
SELECT get_license_rman();

 

默认90天授权。

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章