外部 MySQL
在生产环境中为 Crest 准备外部 MySQL 数据库和连接配置。
生产环境推荐使用外部 MySQL,由数据库平台统一维护备份、监控和高可用。Crest 只负责连接和使用该元数据库。
外部 MySQL 准备完成后,Crest 的用户、组织、角色、资源、数据集配置、分享记录和审计日志都会写入这个库。它不是普通缓存库,不能随意清空、重建或和测试环境混用。
创建数据库
CREATE DATABASE crest
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_0900_ai_ci;如果使用兼容 MySQL 的数据库,请确认字符集、排序规则、事务、索引长度和时间字段行为符合 MySQL 8.0 习惯。
创建后建议立即检查字符集:
SHOW CREATE DATABASE crest;如果字符集不是 utf8mb4,中文、特殊符号或部分导入数据可能出现异常。生产环境不要等系统上线后再改字符集。
创建账号
示例:
CREATE USER 'crest_user'@'%' IDENTIFIED BY '替换为强密码';
GRANT ALL PRIVILEGES ON crest.* TO 'crest_user'@'%';
FLUSH PRIVILEGES;生产环境可以按企业规范收敛来源网段,不建议使用过宽的访问来源。
账号创建完成后,使用 Crest 部署服务器的实际出口地址测试登录。管理员终端可连接数据库,并不等同于 Crest 服务器具备访问能力。
配置连接
单机安装时可在配置中指定:
CREST_DB_HOST=mysql.example.internal
CREST_DB_PORT=3306
CREST_DB_NAME=crest
CREST_DB_USERNAME=crest_user
CREST_DB_PASSWORD='替换为强密码'Kubernetes 部署时,在 ConfigMap 和 Secret 中替换对应字段。
配置密码时注意引号和特殊字符。密码中包含 $、!、&、空格等字符时,Shell、YAML 和 Compose 都可能需要转义。修改后除确认服务启动外,还应进入系统检查数据源、数据集和系统设置是否正常。
配置完成后,首次启动 Crest 时会自动创建表结构并初始化必要数据。此时要重点看应用日志中是否有数据库连接失败、Flyway 迁移失败、权限不足等错误。
连接检查
从 Crest 服务器测试:
mysql -h mysql.example.internal -P 3306 -u crest_user -p crest确认:
- 网络可达。
- 账号密码正确。
- 数据库存在。
- 用户有建表、索引、插入、更新和查询权限。
- 数据库时间和服务器时间差异可控。
连接检查通过后,再做一次应用侧检查:

登录 Crest 后打开工作台,确认系统能读取元数据。再进入系统管理、用户管理和数据源页面,确认基础表结构已经初始化。
迁移已有内置 MySQL
如果要从内置 MySQL 迁移到外部 MySQL:
- 停止 Crest 服务。
- 备份内置 MySQL 数据库。
- 在外部 MySQL 创建目标库。
- 导入备份。
- 修改 Crest 数据库连接配置。
- 启动 Crest。
- 登录系统验证资源、权限、数据源、图表和分享。
迁移前必须备份
数据库迁移涉及账号、权限、数据源密文、图表配置和分享链接。缺少备份和回滚方案时,不应直接切换数据库连接。
迁移后按以下清单验收:
- 管理员和普通用户都能登录。
- 用户、组织、角色和权限仍然存在。
- 数据源密码可以正常解密并测试连接。
- 数据集预览正常。
- 仪表盘、大屏、分享链接和导出中心可用。
- 审计日志能看到迁移后的登录和操作记录。