Skip to content

数据库与管理配置

启动完整服务端前,应先准备持久化数据库,并为集群管理入口配置独立凭据。

配置数据库

DBMgr 至少需要一个名为 default 的数据库接口。当前支持:

项目只应在 {Assets}/res/server/kbengine.xml 中覆盖需要修改的配置,不要直接编辑引擎的 kbe/res/server/kbengine_defaults.xml。更新引擎时,项目覆盖配置可以继续保留。

MySQL 示例

先创建项目数据库和专用用户。下面仅授予该数据库权限,不授予全局管理员权限:

sql
CREATE DATABASE kbe
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_bin;

CREATE USER 'kbe'@'127.0.0.1' IDENTIFIED BY 'replace-with-a-strong-password';
GRANT ALL PRIVILEGES ON kbe.* TO 'kbe'@'127.0.0.1';
FLUSH PRIVILEGES;

如果 DBMgr 与 MySQL 不在同一主机,应把账号来源限定为 DBMgr 的实际内网地址或网段,而不是无条件使用 %

项目配置示例:

xml
<root>
    <dbmgr>
        <databaseInterfaces>
            <default>
                <type>mysql</type>
                <host>127.0.0.1</host>
                <port>3306</port>
                <databaseName>kbe</databaseName>
                <auth>
                    <username>kbe</username>
                    <password>replace-with-a-strong-password</password>
                    <encrypt>false</encrypt>
                    <MySQL>
                        <ssl>false</ssl>
                    </MySQL>
                </auth>
                <numConnections>5</numConnections>
            </default>
        </databaseInterfaces>
    </dbmgr>
</root>

示例使用明文密码,因此设置 encrypt=false。正式环境应按项目的密钥和配置分发方案保护凭据,不能把真实密码提交到公开仓库。启用 MySQL TLS 时,应配置 CA 和证书校验,而不是在公网数据库链路关闭验证。

MongoDB 与 PostgreSQL

切换数据库时修改 <type>

xml
<type>mongodb</type>

或:

xml
<type>postgresql</type>

MongoDB 用户可能创建在独立认证数据库中,此时配置 <authSource>;PostgreSQL 需要同时确认 pg_hba.conf、数据库、schema 和用户权限。三类数据库使用相同的 databaseInterfaces 入口,但认证、TLS、ID 和数据模型行为不同,切换已有项目必须先设计数据迁移,不能只改 <type> 后直接连接旧数据。

配置管理 token

远程管理请求使用 management 共享 token。项目应覆盖仓库默认值:

xml
<root>
    <management>
        <adminToken>replace-with-a-long-random-token</adminToken>
    </management>
</root>

开发、测试和生产应使用不同 token。管理端口只允许受信网络访问,token 不能替代网络隔离、身份审计和最小权限。