DataEase v2 分离部署 MySQL 配置非特权用户


飞致云 发布于 2024-05-23 / 167 阅读 / 0 评论 /
通常情况下,在部署 DataEase 时默认使用 root 特权用户连接数据库 MySQL,但在审计较为严格的环境中,不允许使用特权用户连接数据库。 本篇文章将介绍将 DataEase 的 MySQL 数据库单独部署时使用非特权用户进行连接的配置方法。 1 使用外部数据库设置 请自行在其它服务器安装

通常情况下,在部署 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;



是否对你有帮助?