首页 > 默认 > HZERO PaaS平台安装笔记(二)安装中间件

HZERO PaaS平台安装笔记(二)安装中间件

2025年11月4日

本文是H-ZERO 安装部署笔记,出于学习研究目的,刚开始按照开放平台->社区与合作伙伴->文档中心- 《HZERO 轻量版》技术文档进行部署实践,选择快速开始->微服务版进行安装; 但作为初学者, 水平太低, 由于轻量版合并了多个微服务,要改各种配置,过程中遇到多个困难,没有搞定🙂, 后来按照 开放平台->社区与合作伙伴->文档中心- 《HZERO汉得企业级PaaS平台》 技术文档进行 标准版(没有合并微服务的版本) 安装部署实践 ,安装部署成功了。本系列文章记录了这个过程。

需要说明的是,如果不是出于学习研究目的,是不需要这么麻烦的,技术中心有发发行版,可以一键安装,一小时不到可以全部安装完成。

本文是出于学习研究目的,按照技术文档从制品库里面拿各种零件进行组装,所以过程会比较繁琐,供学习研究参考。

实践系统环境:windows自带的Linux虚拟机 WSL ,linux版本在微软应用商店选择 Ubuntu22.04

二、安装中间件

MySQL安装

root@desktop-jacksen:/d02/hzero# mysql -version
Command ‘mysql’ not found

root@desktop-jacksen:/d02/hzero# sudo apt install mysql-server
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following additional packages will be installed:

……

Done!

 

检查状态:

root@desktop-jacksen:/d02/hzero# sudo service mysql status
● mysql.service – MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2025-06-26 13:36:01 CST; 5min ago
Process: 9699 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 9707 (mysqld)
Status: “Server is operational”
Tasks: 37 (limit: 23831)
Memory: 374.9M
CGroup: /system.slice/mysql.service
└─9707 /usr/sbin/mysqld

 

登录MySQL,创建远程登录管理用户hzero

root@desktop-jacksen:/d02/hzero# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.42-0ubuntu0.22.04.1 (Ubuntu)

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> CREATE USER ‘hzero’@’%’ IDENTIFIED BY ‘hzero’;
Query OK, 0 rows affected (0.03 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘hzero’@’%’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql>

 

调整数据库默认配置, 进入/etc/mysql/mysql.conf.d/mysqld.cnf配置文件,添加如下配置项

root@desktop-jacksen:/etc/mysql/mysql.conf.d# vi mysqld.cnf

 

在[mysqld] 章节最后添加:
#
#
max_connections=2000

max_allowed_packet=32M

# lower_case_tabel_names default is 0 , change to 1 well cause service restart failue
# lower_case_table_names=1

character_set_server=utf8mb4

collation_server=utf8mb4_bin

 

原安装文档中要求 lower_case_table_names=1 

原但会导致MySQL服务重启失败,所以这个配置没改; 原因是:

数据目录权限问题(Linux 默认行为:lower_case_table_names=1 要求 MySQL 将表名统一转换为小写存储,但 Linux 文件系统默认区分大小写。若数据目录中的表文件(如 User.frm)与转换后的表名(如 user.frm)冲突,会导致启动失败。)

已有数据库兼容性问题(若数据库中已存在大小写不同但实际是同一表名的对象(如 User 和 user),启用此参数会导致命名冲突。)

文件系统限制(若 MySQL 数据目录挂载在区分大小写的文件系统(如 ext4)上,而表名在磁盘上以混合大小写存储,会导致无法找到表文件。)

 

但这个配置必须且重要的,由于历史原因,H-ZERO 早期并没有对数据库对象命名的大小写做严格的规范,所以如果这个配置不改掉,会导致运行错误。

 

应用程序要求mysql配置 lower_case_table_names=1, 这个配置一旦Mysql启动之后就改不了,需要在安装完MySQL SERver后,未启动前就把这个配置改掉。 我现在需要分四步走:

第一步,把现有安装的mysql 卸载掉;

第二步,重新安装Mysql ,但不要立马启动服务;

第三步,更改配置 lower_case_table_names=1

第四步,启动Mysql 服务

 

把这段提示词给到chatgpt,会给你正确的指导,按指导可以很快完成;但如果给到豆包或者腾讯元宝,会把你带到沟里去。

mysql> SHOW VARIABLES LIKE ‘lower_case_table_names’;
+————————+——-+
| Variable_name | Value |
+————————+——-+
| lower_case_table_names | 1 |
+————————+——-+
1 row in set (0.01 sec)

mysql>

 

sudo systemctl restart mysql

 

附:chatgpt的指导
你这个需求非常合理,因为 lower_case_table_names=1 这个配置必须在 初始化数据目录前 设置,MySQL 一旦初始化完成就无法更改这个参数,除非删库重来。因此我们需要控制 MySQL 安装过程,确保配置在初始化前就已设置好。

✅ 你的目标步骤简述如下:

  • 卸载现有 MySQL 安装和数据;
  • 重新安装 MySQL,但阻止其立即启动;
  • 修改配置文件,设置 lower_case_table_names=1;
  • 手动初始化数据目录;
  • 启动 MySQL 服务。

下面是完整可执行步骤。

🔁 第一步:卸载 MySQL 并清理数据

sudo systemctl stop mysql

sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*

sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql

sudo apt autoremove –purge

sudo apt autoclean

确保 MySQL 的相关数据与配置被干净移除。

🧱 第二步:安装但不启动 MySQL

安装 MySQL 服务器但阻止自动启动服务。

sudo apt update

sudo apt install mysql-server -y

安装完成后立即停止服务防止自动初始化(非常关键!)

sudo systemctl stop mysql

sudo systemctl disable mysql

sudo rm -rf /var/lib/mysql  # 清除刚自动生成的数据目录

✍️ 第三步:配置 lower_case_table_names=1

编辑配置文件:

bash

复制编辑

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

在 [mysqld] 段中添加或修改:

[mysqld]

lower_case_table_names=1

保存并退出。

🔧 第四步:手动初始化数据库

使用如下命令初始化(会根据配置写入 lowercase 设置):

sudo mysqld –initialize –user=mysql

这一步会生成数据目录和 root 的临时密码,记录在日志中:

sudo grep ‘temporary password’ /var/log/mysql/error.log

🚀 第五步:启动 MySQL 服务

sudo systemctl start mysql

sudo systemctl enable mysql

首次登录:

sudo mysql -u root -p# 输入日志中看到的临时密码

然后立即修改 root 密码:

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘YourNewPassword!’;

✅ 验证配置是否生效

登录后:

SHOW VARIABLES LIKE ‘lower_case_table_names’;

应返回:

| Variable_name          | Value |+————————+——-+

| lower_case_table_names | 1     |+————————+——-+

🧠 补充说明

lower_case_table_names=1 是在 Linux 下实现 不区分大小写表名 的唯一方式;

注意这会影响开发团队的 SQL 编码规范(表名全部小写更稳妥);

MySQL 初始化成功后,该参数不能再改,除非你删除数据目录重新初始化。

 

 

Redis安装

root@desktop-jacksen:/d02/hzero# redis-server –version
Command ‘redis-server’ not found, but can be installed with:
apt install redis-server
root@desktop-jacksen:/d02/hzero# sudo apt install redis-server
Reading package lists… Done

……

 

root@desktop-jacksen:/d02/hzero# redis-server –version
Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=a3fdef44459b3ad6

 

查看状态:

root@desktop-jacksen:/d02/hzero# sudo systemctl status redis-server
● redis-server.service – Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2025-06-26 15:10:31 CST; 7min ago

设置开机自动启动:

root@desktop-jacksen:/d02/hzero# sudo systemctl enable redis-server
Synchronizing state of redis-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable redis-server
root@desktop-jacksen:/d02/hzero#

 

Minio 安装

1. 下载 MinIO 服务器

root@desktop-jacksen:/d02/hzero# wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

2. 创建数据目录

root@desktop-jacksen:/# sudo mkdir -p /data/minio
root@desktop-jacksen:/# sudo chown -R $USER:$USER /data/minio

 

3. 配置环境变量

创建 /etc/default/minio 文件:添加一下内容:

MINIO_VOLUMES=”/data/minio”
MINIO_OPTS=”–address :9000 –console-address :9001″
MINIO_ROOT_USER=hzero.admin
MINIO_ROOT_PASSWORD=hzero.hand.2020.
MINIO_ACCESS_KEY=hzero.admin
MINIO_SECRET_KEY=hzero.hand.2020.

4. 创建 systemd 服务

sudo nano /etc/systemd/system/minio.service,添加一下内容:

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
User=root
Group=root
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

5. 启动并设置开机自启

sudo systemctl daemon-reloadsudo 

systemctl enable miniosudo 

systemctl start miniosudo 

systemctl status minio  # 检查服务状态

 

1、验证安装

打开浏览器,访问 http:服务器IP:9001/,使用配置的用户名和密码登录。

root@desktop-jacksen:/usr/local/bin# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.14.48 netmask 255.255.240.0 broadcast 172.18.15.255
inet6 fe80::215:5dff:fec4:f69b prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:c4:f6:9b txqueuelen 1000 (Ethernet)

 

备注:关机前先停服务,尽量避免信息丢失:
sudo systemctl stop mysql redis nginx minio

启动时也用systemctl启动, systemctl会检查状态,如果开机已经自启动,它会忽略,不会重复启动,也不会报错;
sudo systemctl start mysql redis nginx minio

 

 

关于作者:

昵称:Jack.shang
档案信息:jack.shang 一位从技术走向管理,再从管理走向市场的普通行者
联系方式:你可以通过syfvb@hotmail.com联系作者
点击查看发表过的所有文章...
本文永久链接: http://blog.retailsolution.cn/archives/4380

 

 

对本文的评价:

 

 

分类: 默认 标签:
本文的评论功能被关闭了.