使用外部元数据库
NineData 社区版支持将元数据存储于企业自有 MySQL 数据库,实现高可用、集中化元数据管理。
前提条件
NineData 社区版版本至少为 4.1.0。当前版本号,可登录 NineData 社区版控制台查看,位于页面左上角。
自有 MySQL 数据库版本为 8.0 及以上,且账号需要具备创建数据库(CREATE DATABASE)的权限。若没有该权限,则需提前创建好以下数据库并赋予账号库的所有权限:
meta、scheduler、slow_log、track_event、replication_exec、replication_metastore
。确保部署 NineData 社区版的服务器能够访问外部 MySQL 元数据库实例。
方案一:自动建库模式(推荐)
此方案允许 NineData 自动创建元数据库,无需手动创建。
访问自建 MySQL 元数据库。
创建 NineData 专用用户。
CREATE USER 'ninedata'@'%' IDENTIFIED BY '<Your-Password>';
授予全局权限。
GRANT ALL ON *.* TO 'ninedata'@'%';
在部署 NineData 社区版服务的 docker run 命令中传入如下 META_DB 环境变量,格式为
-e META_DB=<数据库账号>:<数据库密码>@<数据库 Host>:<数据库端口号>
。示例如下:docker run -p 9999:9999 --privileged -v /opt/ninedata:/u01 -e META_DB=ninedata:123456@127.0.0.1:3306 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:4.1.0
方案二:手动建库模式
此方案适用于无法授予 NineData 建库权限的场景,需手动预创建所需数据库,并对账号授予这些数据库的完全管理权限。
访问自建 MySQL 元数据库。
通过 CREATE DATABASE 语句创建所有所需元数据库。
CREATE DATABASE meta;
CREATE DATABASE scheduler;
CREATE DATABASE slow_log;
CREATE DATABASE track_event;
CREATE DATABASE replication_exec;
CREATE DATABASE replication_metastore;创建用户并对齐授予上述数据库的完全管理权限。
CREATE USER 'ninedata'@'%' IDENTIFIED BY '<Your-Password>';
GRANT ALL PRIVILEGES ON meta.* TO 'ninedata'@'%';
GRANT ALL PRIVILEGES ON scheduler.* TO 'ninedata'@'%';
GRANT ALL PRIVILEGES ON slow_log.* TO 'ninedata'@'%';
GRANT ALL PRIVILEGES ON track_event.* TO 'ninedata'@'%';
GRANT ALL PRIVILEGES ON replication_exec.* TO 'ninedata'@'%';
GRANT ALL PRIVILEGES ON replication_metastore.* TO 'ninedata'@'%';
FLUSH PRIVILEGES;在部署 NineData 社区版服务的 docker run 命令中传入如下 META_DB 环境变量,格式为
-e META_DB=<数据库账号>:<数据库密码>@<数据库 Host>:<数据库端口号>
。示例如下:docker run -p 9999:9999 --privileged -v /opt/ninedata:/u01 -e META_DB=ninedata:123456@127.0.0.1:3306 --name ninedata -d registry.cn-hangzhou.aliyuncs.com/ninedata_public/ninedata:4.1.0