跳到主要内容

自定义 MySQL 配置指南

「微搭私有部署」支持连接自定义的 MySQL 数据库,以满足企业级数据存储和管理需求。本文档将指导您完成 MySQL 数据库的配置和集成。

前置要求

在开始配置之前,请确保您的环境满足以下要求:

数据库版本要求

版本兼容性
  • MySQL 版本:8.0.30 及以上版本(支持单机版和集群版)
  • 版本限制:MySQL 8.4 及以后版本可能不兼容(因禁用了 mysql_native_password 插件)
  • 兼容性检查:建议使用 MySQL 8.0.30 - 8.3.x 版本以确保最佳兼容性

权限要求

配置用于连接的 MySQL 用户需要具备以下权限:

  • 表操作权限CREATEDROPALTER
  • 数据操作权限SELECTINSERTUPDATEDELETE
  • 索引权限INDEX

生产环境建议

最佳实践
  • 高可用性:生产环境建议使用云数据库或自建高可用 MySQL 集群
  • 避免 Docker:不推荐使用 Docker 启动的 MySQL 作为生产环境数据存储
  • 外部数据库:推荐连接企业自有的外部数据库服务
  • 备份策略:确保数据库具备完善的备份和恢复机制

MySQL 配置参数

基础配置要求

为确保「微搭私有部署」与 MySQL 数据库的兼容性,需要对 MySQL 进行以下配置。以下配置适用于 MySQL 8.0 版本。

推荐配置规格

腾讯云 CDB MySQL 为例:

配置项推荐值说明
版本MySQL 8.0 集群版提供高可用性保障
CPU2 核及以上根据业务量调整
内存8GB 及以上确保查询性能
存储200GB 及以上根据数据量预估
网络开放指定端口访问权限确保微搭可以连接

必需的配置参数

修改 MySQL 配置文件(my.cnfmy.ini),添加以下配置:

[client]
# MySQL 客户端程序配置
default-character-set = utf8mb4

[mysql]
# MySQL 命令行客户端配置
default-character-set = utf8mb4

[mysqld]
# MySQL 服务器配置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
sql_mode = ALLOW_INVALID_DATES
explicit_defaults_for_timestamp = OFF
default-authentication-plugin = mysql_native_password
配置说明
  • 字符集设置:使用 utf8mb4 确保完整的 Unicode 支持
  • 排序规则utf8mb4_unicode_ci 提供更好的国际化支持
  • 认证插件mysql_native_password 确保与微搭的兼容性
  • 时间戳设置:关闭显式默认值以兼容旧版本行为

单机版部署配置

「微搭私有部署」单机版提供两种 MySQL 配置方式:可视化配置和脚本配置。

方式一:可视化配置部署

单机版支持通过可视化界面配置外部 MySQL 数据库,操作简单直观。

操作步骤

  1. 打开安装器页面: 在浏览器中访问:http://<服务器IP>:38080

  2. 配置外部 MySQL: 在安装器页面中找到外部中间件配置选项,开启 MySQL 配置:

MySQL 可视化配置

  1. 填写数据库信息
    • 数据库主机地址
    • 端口号(默认 3306)
    • 用户名和密码
    • 数据库名称

方式二:脚本配置部署

通过配置文件的方式进行 MySQL 配置,适合自动化部署场景。

前置条件

此配置需要在 部署微搭流程 中,运行安装脚本 ./install.sh 之后进行。

步骤 1:创建配置文件

vim config.yaml

在当前目录下创建 config.yaml 文件,输入以下配置:

## config.yaml
customMySQL:
enabled: true
host: 192.168.3.14 # MySQL 服务器地址
port: 3306 # MySQL 端口
username: root # 数据库用户名
password: your_password # 数据库密码
dbName: lowcode # 主数据库名称
dbRuntimeName: lcruntime # 运行时数据库名称
重要提醒
  • 网络连通性:确保输入的 MySQL 地址在当前服务器上可以访问
  • 数据库预创建dbNamedbRuntimeName 指定的数据库必须提前创建
  • 数据库独立性:两个数据库名称不能相同,用于不同的业务模块

步骤 2:创建数据库

在 MySQL 中执行以下 SQL 语句创建所需的数据库:

-- 创建主数据库
CREATE DATABASE `lowcode` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建运行时数据库
CREATE DATABASE `lcruntime` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

步骤 3:验证配置

保存配置文件后,验证内容是否正确:

cat config.yaml

确认配置信息无误后,可以看到类似以下的输出:

配置文件验证

执行安装部署

根据您的使用情况选择对应的部署方式:

适用场景:首次使用外部 MySQL 服务

按照 部署流程 继续完成后续安装步骤。

常见问题排查

问题:执行 ./install.sh 后提示 "Access denied"

可能原因

  • MySQL 连接信息配置错误
  • 网络连通性问题
  • 用户权限不足

解决方案

  1. 检查配置文件:确认 config.yaml 中的 MySQL 连接信息正确
  2. 测试连通性:在当前服务器上使用 MySQL 客户端测试连接
    mysql -h 192.168.3.14 -P 3306 -u root -p
  3. 验证权限:确认 MySQL 用户具备必要的数据库操作权限
  4. 检查防火墙:确保服务器防火墙和 MySQL 服务器防火墙都允许连接

集群版部署配置

「微搭私有部署」Kubernetes 集群版通过修改配置文件的方式集成外部 MySQL 数据库。

配置步骤

步骤 1:编辑配置文件

前置条件

此配置需要在 Kubernetes 集群版部署指南 下载部署脚本之后进行。

编辑集群安装配置文件 config.yaml,在 middleware 部分添加 MySQL 配置:

middleware:
mysql:
## MySQL 数据库连接信息
host: your-mysql-host.com # MySQL 服务器地址
port: 3306 # MySQL 端口号
username: your-username # 数据库用户名
password: your-password # 数据库密码
## 数据库名称配置
dbname: lowcode # 主数据库名称
dbRuntimeName: lcruntime # 运行时数据库名称
配置要求
  • 数据库独立性dbnamedbRuntimeName 不能使用相同的数据库名称
  • 数据库预创建:确保指定的数据库已在 MySQL 中创建
  • 网络连通性:确保 Kubernetes 集群可以访问 MySQL 服务器
  • 用户权限:数据库用户需要具备完整的表操作权限

步骤 2:创建数据库

在 MySQL 服务器中执行以下 SQL 语句:

-- 创建主数据库
CREATE DATABASE `lowcode` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建运行时数据库
CREATE DATABASE `lcruntime` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 授权用户权限(根据实际用户名调整)
GRANT ALL PRIVILEGES ON lowcode.* TO 'your-username'@'%';
GRANT ALL PRIVILEGES ON lcruntime.* TO 'your-username'@'%';
FLUSH PRIVILEGES;

步骤 3:执行部署

配置完成后,运行部署命令:

./wedaCli up