通常情况下,在部署 DataEase 时默认使用 root 特权用户连接数据库 MySQL,但在审计较为严格的环境中,不允许使用特权用户连接数据库。
本篇文章将介绍将 DataEase 的 MySQL 数据库单独部署时使用非特权用户进行连接的配置方法。
1 使用外部数据库设置
请自行在其它服务器安装 MySQL,DataEase V2 只能使用 MySQL 8.X 版本,推荐使用 MySQL 8.3 版本。同时 DataEase 对数据库部分配置项有要求,请参考下附的数据库配置,修改环境中的数据库配置文件
[mysqld]
datadir=/var/lib/mysql
default-storage-engine=INNODB
character_set_server=utf8
lower_case_table_names=1
table_open_cache=128
max_connections=2000
max_connect_errors=6000
innodb_file_per_table=1
innodb_buffer_pool_size=1G
max_allowed_packet=64M
transaction_isolation=READ-COMMITTED
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
innodb_flush_log_at_trx_commit=0
sync_binlog=0
group_concat_max_len=1024000
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
skip-name-resolve
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
特别注意以下几个参数的设置:
character_set_server=utf8
lower_case_table_names=1
group_concat_max_len=1024000
创建 DataEase 使用的数据库,DataEase 服务启动时会自动在配置的库中创建所需的表结构及初始化数据
-- 创建数据库
CREATE DATABASE `dataease` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
创建用户及用户授权
-- 创建用户
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
-- 授予权限
GRANT ALL PRIVILEGES ON dataease.* TO 'username'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
如果 DataEase 已经部署完成,MySQL 默认采用容器的方式运行,此时,如果想将数据库切换为外置的数据库,在执行下面的操作前,需要先进行数据迁移操作,参考第 4 步。
2 修改 DataEase 配置文件
DataEase 支持以配置文件的形式来设置安装参数,如安装目录、服务运行端口、数据库配置参数等,具体参数请参见安装包中的 install.conf 文件:
vim /opt/dataease-online-installer-v2.0.0/install.conf
(dataease-online-installer-v2.0.0 为示例安装包目录名称,操作时可根据实际安装包名称替换)
参考以下配置改为实际环境的配置信息,修改数据库地址、用户名、密码信息:
# 基础配置
## 安装目录
DE_BASE=/opt
## Service 端口
DE_PORT=8100
## 登录超时时间,单位min。如果不设置则默认8小时,也就是480
DE_LOGIN_TIMEOUT=480
## 安装模式,community | enterprise
DE_INSTALL_MODE=enterprise
# 数据库配置
## 是否使用外部数据库
DE_EXTERNAL_MYSQL=false
## 数据库地址
DE_MYSQL_HOST=192.168.1.100
## DataEase 数据库库名
DE_MYSQL_DB=dataease
## 数据库用户名
DE_MYSQL_USER=username
## 数据库密码
DE_MYSQL_PASSWORD=password
## 数据库参数
DE_MYSQL_PARAMS="autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true"
3 执行安装脚本
# 进入安装包目录(dataease-online-installer-v2.0.0 为示例安装包目录名称,操作时可根据实际安装包名称替换)
cd dataease-online-installer-v2.0.0
# 运行安装脚本
/bin/bash install.sh
安装成功后,通过浏览器访问如下页面登录:
- 访问地址 : http://目标服务器IP地址:服务运行端口
- 登录用户名: admin
- 登录密码: DataEase@123456
4 数据迁移
备份源数据库数据
# 停掉dataease服务
docker stop dataease
# 进入 mysql-de 容器
docker exec -it mysql-de sh
# 备份数据
mysqldump -uroot -pPassword123@mysql --max_allowed_packet=512M dataease >> /opt/mysql-dataease.sql
# 备份函数 -ntd 是表示导出存储过程;-R是表示导出函数
mysqldump -uroot -pPassword123@mysql -ntd -R dataease > /opt/mysql-function.sql
# 退出容器
exit
# 将上面容器中两个sql 复制到 /opt/ 目录下
docker cp mysql:/opt/mysql-dataease.sql /opt/
docker cp mysql:/opt/mysql-function.sql /opt/
将备份的数据导入目标数据库
# 将备份的文件传输到目标数据库服务的 /opt 目录下,备份的文件在 dataease 服务器中:/opt/mysql-dataease.sql、/opt/mysql-function.sql
# 登录目标服务器的 MySQL 数据库
mysql -uroot -pxxxxxxx
# 导入数据
use dataease;
source /opt/mysql-dataease.sql;
# 导入函数
source /opt/mysql-function.sql;