首页 > 默认 > HZERO PaaS平台组装笔记(四)数据库初始化

HZERO PaaS平台组装笔记(四)数据库初始化

2025年11月5日

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

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

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

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

四、数据库初始化

配置数据库信息

打开resource种子数据项目,编辑application.yml配置文件,因为用的是mysql8,需要将驱动类替换为com.mysql.cj.jdbc.Driver

另外可以看到,其链接的数据库是db.hzero.com.cn, 用户名/密码是hzero/hzero

所以,要设置host ,并在数据库中创建hzero用户,并赋予全部权限;

  1. vim /etc/hosts

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1 localhost
127.0.1.1 desktop-jacksen. desktop-jacksen

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

127.0.0.1 db.hzero.com.cn # 配置数据库所在服务器地址
127.0.0.1 dev.hzero.com.cn # 配置后端服务所在服务器地址
127.0.0.1 redis.hzero.com.cn # 配置redis服务所在服务器地址 

2、并在数据库中创建hzero用户,并赋予全部权限;(这一步如果在之前 安装数据库那一步已经完成,这里就不用做了)

root@desktop-jacksen:~# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.4.5 MySQL Community Server – GPL

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.02 sec)

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

mysql> exit
Bye
root@desktop-jacksen:~#

启动数据初始化安装器

在bash窗口运行database-init.sh脚本,运行成功后控制台会输出链接地址,复制链接地址到浏览器中访问。

root@desktop-jacksen:/d02/hzero/resource-package# chmod +x database-init.sh
root@desktop-jacksen:/d02/hzero/resource-package# ./database-init.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 111M 100 111M 0 0 13.5M 0 0:00:08 0:00:08 –:–:– 10.7M

HZERO 1.12.RELEASE 更新开始…………..


启动工具…

rt(s): 8099 (http) with context path ”
2025-06-28 12:42:54.912 INFO 1481 — [ main] o.hzero.installer.InstallerApplication : Started InstallerApplication in 8.913 seconds (JVM running for 9.416)
========================================================================================
Help document: https://open.hand-china.com/document-center/doc/component/1356/13924?doc_id=34571
The project address: http://127.0.1.1:8099
========================================================================================

IPv4 address for eth0: 172.18.14.48

在host机上访问:http://172.18.14.48:8099

看起来缺少了飞搭两个服务的初始化数据;

按顺序初始化

依次执行数据库更新、数据修复和数据更新,确保每个步骤成功后再往后续步骤执行。

复制

  1. (1)更新数据库:将部署服务所需的数据库勾选上,确认勾选无误后先点击`更新数据库`按钮更新数据库信息。
  2. (2)数据修复:根据环境中数据库的类型来勾选对应数据库的数据修复脚本,勾选完成后点击`数据修复`按钮完成数据修复,如果新安装平台,此步骤可以忽略。
  3. (3)导入数据:勾选需要导入的数据后点击`导入数据`按钮将期初数据进行导入。执行完毕后可连接到数据库中检查执行情况。

更新数据库的时候,出现了一闪而过的更正错误提示“处理出错”,没理会,继续第三步,界面提示导入完成。

导入完成,CTRL+C 结束

检查数据(正常应该出现每个模块对应的数据库):

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
4 rows in set (0.00 sec)

mysql>

很显然,安装失败,实际没成功;

在bash窗口重新 运行database-init.sh脚本,然后把控制台的错误信息给豆包,豆包罢工了,说“抱歉,我还在学习中,你可以使用中文向我提问。”,把错误信息给元宝

元宝对日志的分析:

错误原因分析

1、MySQL 8.0 的默认认证插件
MySQL 8.0 及以上版本默认使用 caching_sha2_password 插件,该插件要求客户端通过 SSL 加密或从服务器检索公钥进行身份验证。若未启用 SSL 且未显式允许公钥检索,则会触发此错误

  • JDBC 驱动的安全限制
    在连接字符串中未配置 allowPublicKeyRetrieval=true 时,JDBC 驱动(如 MySQL Connector/J)会阻止公钥检索,导致连接失败。

3、日志中的关键证据

Caused by: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)

解决方案:

chatgpt最推荐的解决办法(适用于你的情况)

 修改 JDBC URL:

将你的 JDBC 连接字符串 增加两个参数

properties

复制编辑

jdbc:mysql://localhost:3306/hzero?allowPublicKeyRetrieval=true&useSSL=false

替换掉你原来的连接字符串。

为什么不建议再用 mysql_native_password

你当前使用的是 MySQL 8.4.5,这是个较新的版本,mysql_native_password.so 插件不再默认附带,而且 安全性较低,未来会逐渐被弃用。

插件缺失是故意设计(更安全);

官方推荐继续使用 caching_sha2_password,并通过连接串调整;

连接安全依赖参数而非降级插件。

更改后再试:

因为是新安装最新的1.12版本,更新完成后,执行第三步

完成后再检查:

mysql> show databases;
+——————–+
| Database |
+——————–+
| hzero_admin |
| hzero_interface |
| hzero_platform |
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
7 rows in set (0.01 sec)

界面上显示的几个数据库是都进去了;

 

 

关于作者:

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

 

 

对本文的评价:

 

 

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