51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

通常情况下,在部署 DataEase 时默认使用 root 特权用户连接数据库 MySQL,但在审计较为严格的环境中,不允许使用特权用户连接数据库。

本篇文章将介绍将 DataEase 的 MySQL 数据库单独部署时使用非特权用户进行连接的配置方法。

1 使用外部数据库设置 {#1-%E4%BD%BF%E7%94%A8%E5%A4%96%E9%83%A8%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E7%BD%AE}

请自行在其它服务器安装 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 配置文件 {#2-%E4%BF%AE%E6%94%B9-dataease-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6}

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 执行安装脚本 {#3-%E6%89%A7%E8%A1%8C%E5%AE%89%E8%A3%85%E8%84%9A%E6%9C%AC}

# 进入安装包目录(dataease-online-installer-v2.0.0 为示例安装包目录名称,操作时可根据实际安装包名称替换)
cd dataease-online-installer-v2.0.0

运行安装脚本
======


`/bin/bash install.sh`

安装成功后,通过浏览器访问如下页面登录:

4 数据迁移 {#4-%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB}

备份源数据库数据

# 停掉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;`


赞(0)
未经允许不得转载:工具盒子 » DataEase v2 分离部署 MySQL 配置非特权用户