任务1-2 区块链系统部署与运维(15分)

这篇具有很好参考价值的文章主要介绍了任务1-2 区块链系统部署与运维(15分)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

内容目录

基础配置

升级yum

安装 openJdk14(不推荐)

下载地址

查找旧版本

解压压缩包

设置环境变量

测试一下吧

安装 Oraclejdk14(推荐)

下载地址

使用 winscp 传到 /usr/lib/jvm 目录下

进入 etc/profile 中修改环境变量

检查Java版本

安装 docker 20(推荐)

卸载旧版本的 Docker(如果您之前已经安装过 Docker)

安装所需的依赖项

设置 Docker CE 的稳定版仓库:

安装 Docker 20

启动 Docker 服务

验证 Docker 是否成功安装

安装 docker18

安装依赖 curl、openssl

安装需要的软件包

设置 yum 源

查看 docker 版本

指定版本安装

启动 docker 命令

docker 加入开机自启动

MySQL 5.6 dokcer安装

使用docker安装,拉取镜像到本地

启动

启动失败处理

进入 MySQL 容器

python3 环境搭建

查看系统 python 位置

切换到 python 路径下

下载 python3 需要的依赖

centos7 添加 epel 扩展源

使用 wegt 下载 python3

解压

手动编译

安装依赖zlib、zlib-deve

备份软链接

添加软链接

测试

更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用

把第一行的#! /usr/bin/python 修改为如下

还有一个地方也需要修改

把第一行的#! /usr/bin/python 修改如下

最终测试

docker 部署区块链网络

创建操作目录

下载脚本

 搭建单群组4节点区块链

启动区块链

检查容器

查看节点

查看共识

fisco 控制台部署

获取控制台

拷贝控制台配置文件

修改配置文件

配置控制台文件

 启动

原生安装MySQL

检查系统中是否已安装 MySQL

 返回空值的话,就说明没有安装 MySQL 

查看已安装的 Mariadb 数据库版本

卸载已安装的 Mariadb 数据库

再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成

下载安装包文件

wegt 无效,需要升级

安装mysql-community-release-el7-5.noarch.rpm包

cd 到安装目录,ls查看一下目录

查看可用的 mysql 安装文件

安装mysql

检查mysql是否安装成功

启动 mysql 服务

设置密码

设置远程主机登录

为 root 账户添加远程登录能力

原生搭建 WeBASE-front(不推荐)

下载安装包

解压

拷贝sdk证书文件(build_chain的时候生成的)

服务启停

docker 镜像快速搭建 WeBase

拉取镜像

启动容器

 MySQL 配置数据

创建 webase 用户

创建数据库

将数据库所有权赋予本地 webase 账号

验证 WeBASE 账号

 一键部署 webase(推荐)

检查环境

PyMySQL (python3.6+)

检查服务器网络策略

拉取部署脚本

解压,进入目录

配置管理平台连接区块链系统

切换到区块链目录下

修改配置文件

使用命令启动管理平台服务

报错处理

验证平台服务

新节点创建,启动,检查操作(推荐)

查找脚本位置

创建新节点

修改新建节点配置

平台运维

添加新主机

新增节点

修改新节点状态,并监控


内容目录

  1. 关停防火墙,升级yum,升级其他元素等等
  2. 配置 docker+
  3. 配置 Java
  4. 配置 MySQL
  5. 配置 python
  6. 搭建 fisco 网络和控制台
  7. 搭建 webase

基础配置

升级yum

yum update

安装 openJdk14(不推荐)

下载地址

Archived OpenJDK GA Releases (java.net)

查找旧版本

查看是否自带java
java -version

检测jdk的安装包
rpm -qa | grep java

批量删除这些安装包 
rpm -e --nodeps `rpm -qa | grep java

删除安装的java或jdk目录
which java
rm -rf /usr/bin/java

解压压缩包

用 winscp 上传到 /usr/lib 目录下

cd /usr/lib

解压到当前文件夹下

tar -zxvf openjdk-14.0.2_linux-x64_bin.tar.gz

删除安装包

rm -rf openjdk-14.0.2_linux-x64_bin.tar.gz

 设置环境变量

vim /etc/profile

长按 i 进入插入模式,在最下面添加以下设置,Esc + :wq 保存退出

# JAVA environment
export JAVA_HOME=/usr/lib/jdk-14.0.2
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

刷新配置

source /etc/profile

测试一下吧

javac
java
Java -version

安装 Oraclejdk14(推荐)

下载地址

Java Archive Downloads - Java SE 14

使用 winscp 传到 /usr/lib/jvm 目录下

sudo tar -zxvf jdk-14_linux-x64_bin.tar.gz -C /usr/lib/jvm
cd /usr/lib/jvm && sudo mv jdk-14 /usr/lib/jvm/

进入 etc/profile 中修改环境变量

vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk-14
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

检查Java版本

java -version

安装 docker 20(推荐)

 卸载旧版本的 Docker(如果您之前已经安装过 Docker)

sudo yum remove docker docker-common docker-selinux docker-engine

安装所需的依赖项

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置 Docker CE 的稳定版仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manager --enable docker-ce-nightly

安装 Docker 20

sudo yum update && sudo yum install docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io

启动 Docker 服务

sudo systemctl start docker

验证 Docker 是否成功安装

sudo docker version

安装 docker18

安装依赖 curl、openssl

# ubuntu
sudo apt install -y curl openssl
# centos
sudo yum install -y curl openssl openssl-devel

安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

设置 yum 源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看 docker 版本

yum list docker-ce --showduplicates | sort -r

指定版本安装

yum install docker-ce-版本号
yum install docker-ce-18.06.3.ce

启动 docker 命令

systemctl start docker

docker 加入开机自启动

systemctl enable docker

MySQL 5.6 dokcer安装

使用docker安装,拉取镜像到本地

docker pull mysql:5.6

启动

docker run -id -p 3307:3306 --name=c_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

启动失败处理

1.停止 Docker 服务:可以使用以下命令停止 Docker 服务:
sudo systemctl stop docker
2.清除 iptables 规则:可以使用以下命令清除 iptables 规则:
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
3.重启 Docker 服务:可以使用以下命令重启 Docker 服务:
sudo systemctl start docker


停止并删除现有的容器
sudo docker stop c_mysql
sudo docker rm c_mysql

重新运行
docker run -id -p 3307:3306 --name=c_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

进入 MySQL 容器

docker exec -it c_mysql /bin/bash
mysql -uroot -p123456

python3 环境搭建

查看系统 python 位置

whereis python

切换到 python 路径下

cd /usr/bin

下载 python3 需要的依赖

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

centos7 添加 epel 扩展源

yum -y install epel-release
yum install python-pip
pip install --upgrade pip
pip install wget

使用 wegt 下载 python3

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
这里提示 pip 版本不正确
建议不使用 wegt 的方法下载
下载包通过 winscp 的方法传过去

解压

xz -d Python-3.6.8.tar.xz
tar -xf Python-3.6.8.tar

手动编译

cd Python-3.6.8

./configure prefix=/usr/local/python3

make && make install

安装依赖zlib、zlib-deve

yum install zlib zlib
yum install zlib zlib-devel

备份软链接

mv /usr/bin/python /usr/bin/python.bak

添加软链接

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python

测试

python -V

更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用

vi /usr/bin/yum

把第一行的#! /usr/bin/python 修改为如下

#! /usr/bin/python2

还有一个地方也需要修改

vi /usr/libexec/urlgrabber-ext-down

把第一行的#! /usr/bin/python 修改如下

#! /usr/bin/python2

最终测试

输入python2,提示python2.7.5

输入python,提示python3.6

docker 部署区块链网络

创建操作目录

cd ~ && mkdir -p fisco && cd fisco

下载脚本

curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/master-2.0/tools/build_chain.sh && chmod u+x build_chain.sh

 搭建单群组4节点区块链

  • 尽量使用-p 指定其他端口,以免启动管理平台时提示端口被占用
bash build_chain.sh -d -l 127.0.0.1:4 -p 30500,20500,8945

启动区块链

nodes/127.0.0.1/start_all.sh

检查容器

docker ps -a | egrep fiscobcos

查看节点

tail -f nodes/127.0.0.1/node0/log/log*  | grep connected

查看共识

tail -f nodes/127.0.0.1/node0/log/log*  | grep +++

fisco 控制台部署

获取控制台

cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh

拷贝控制台配置文件

cp -n console/conf/config-example.toml console/conf/config.toml

修改配置文件

cd console/conf && vi config.toml

# 将端口修改为自己在 build_chain 时用 -p指定的端口
# 如 build_chain.sh -d -l"127.0.0.1:4" -p 30500,20500,8945
# 需要在 config.toml 文件中将 network 一项中的端口参数修改一下
[network]
peers=["127.0.0.1:20500"."127.0.0.1:20501"]    # The peer list to connect

配置控制台文件

cp -r nodes/127.0.0.1/sdk/* console/conf/
ls console/conf

 启动

cd ~/fisco/console && bash start.sh

原生安装MySQL

检查系统中是否已安装 MySQL

rpm -qa | grep mysql

 返回空值的话,就说明没有安装 MySQL 

注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。

查看已安装的 Mariadb 数据库版本

rpm -qa|grep -i mariadb

卸载已安装的 Mariadb 数据库

rpm -qa|grep mariadb|xargs rpm -e --nodeps

再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成

rpm -qa|grep -i mariadb

下载安装包文件

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

wegt 无效,需要升级

sudo yum install wget

安装mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

cd 到安装目录,ls查看一下目录

cd /etc/yum.repos.d

查看可用的 mysql 安装文件

​yum repolist all | grep mysql 

 安装mysql

yum install mysql-server

检查mysql是否安装成功

rpm -qa | grep mysql

 启动 mysql 服务

systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动

 设置密码

# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';
mysql> flush privileges; 

设置远程主机登录

mysql> GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password';

为 root 账户添加远程登录能力

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";

原生搭建 WeBASE-front(不推荐)

下载安装包

cd ~/fisco
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-front.zip

解压

unzip webase-front.zip
cd webase-front

拷贝sdk证书文件(build_chain的时候生成的)

  • 将节点所在目录nodes/${ip}/sdk下的所有文件拷贝到当前conf目录

  • 供SDK与节点建立连接时使用(SDK会自动判断是否为国密,且是否使用国密SSL)

    • 链的sdk目录包含了ca.crt, sdk.crt, sdk.keygm文件夹

      • gm文件夹包含了国密SSL所需的证书

      • 注,只有在建链时手动指定了-G(大写)时节点才会使用国密SSL

cp -r nodes/${ip}/sdk/* ./conf/

 服务启停

启动: bash start.sh
停止: bash stop.sh
检查: bash status.sh 

docker 镜像快速搭建 WeBase

拉取镜像

docker pull fiscoorg/fisco-webase:v2.7.2

启动容器

  • 需要将生成的nodes目录的node0的配置、SDK证书挂载到容器中,并将容器内的日志挂载到/nodes/127.0.0.1/node0/front-log
docker run -d -v /nodes/127.0.0.1/node0:/data -v /nodes/127.0.0.1/sdk:/data/sdk -v /nodes/127.0.0.1/node0/front-log:/front/log --network=host -w=/data fiscoorg/fisco-webase:v2.7.2

 MySQL 配置数据

创建 webase 用户

CREATE USER 'webase'@'localhost' IDENTIFIED BY '123456';

创建数据库

create DATABASE webasenodemanager;
create DATABASE webasesign;

将数据库所有权赋予本地 webase 账号

GRANT ALL PRIVILEGES ON webasenodemanager.* To 'webase'@'localhost';
GRANT ALL PRIVILEGES ON webasesign.* To 'webase'@'localhost';
quit

验证 WeBASE 账号

mysql -u webase -p123456
show databases;

 一键部署 webase(推荐)

检查环境

  • Oracle JDK 8 至 14
  • MySQL-5.6及以上
  • Python3.6及以上
java -version
mysql --version
python --version

 PyMySQL (python3.6+)

sudo yum -y install python36-pip
sudo pip3 install PyMySQL

检查服务器网络策略

  • 开放WeBASE管理平台端口:检查webase-web管理平台页面的端口webPort(默认为5000)在服务器的网络安全组中是否设置为开放。如,云服务厂商如腾讯云,查看安全组设置,为webase-web开放5000端口。若端口未开放,将导致浏览器无法访问WeBASE服务页面
  • 开放节点前置端口:如果希望通过浏览器直接访问webase-front节点前置的页面,则需要开放节点前置端口frontPort(默认5002);由于节点前置直连节点,不建议对公网开放节点前置端口,建议按需开放

启动防火墙

sudo systemctl start firewalld

添加需要开放的端口到防火墙规则中

sudo firewall-cmd --zone=public --add-port=5002/tcp --permanent

重新加载生效

sudo firewall-cmd --reload

确认端口生效

sudo firewall-cmd --list-ports

拉取部署脚本

wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-deploy.zip

解压,进入目录

unzip webase-deploy.zip && cd webase-deploy

配置管理平台连接区块链系统

切换到区块链目录下

cd ~/fisco/webase-deploy

修改配置文件

vi common.properties
#将mysql.user和mysql.password改为webase和123456
# Mysql database configuration of WeBASE-Node-Manager 修改相应的MySQL
用户名密码等信息
mysql.ip=localhost
mysql.port=3306
mysql.user=webase      #修改此处
mysql.password=123456  #修改此处
mysql.database=webasenodemanager
sign.mysql.ip=localhost
sign.mysql.port=3306
sign.mysql.user=webase     #修改此处
sign.mysql.password=123456 #修改此处
sign.mysql.database=webasesign

使用命令启动管理平台服务

# 下载
python3 deploy.py installAll

# 启动
python3 deploy.py startAll

报错处理

  • 如果提示端口被占用
# 查看当前系统中哪个进程正在占用 8545 端口
lsof -i:8545

# 查看当前系统中哪个进程正在占用 8545 端口
COMMAND     PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
node      12345   user   12u  IPv4 1234567      0t0  TCP *:8545 (LISTEN)

#PID 为 12345 的 node 进程正在占用 8545 端口。如果您想停止该进程:
sudo kill 12345

验证平台服务

初始默认的账户名是admin,密码是Abcd1234

http://localhost:5000

新节点创建,启动,检查操作(推荐)

查找脚本位置

find / -name gen_node_cert.sh

创建新节点

cd ~/fisco
bash ./webase-deploy/webase-node-mgr/script/deploy/gen_node_cert.sh -c nodes/cert/agency/ -o ./nodes/127.0.0.1/node4

修改新建节点配置

cd nodes/127.0.0.1
  • 拷贝 node0 文件 config.ini 文件到新建节点

cp node0/config.ini node4/config.ini
cp node0/conf/group.1.genesis node4/conf
  • 进入新建节点config.ini文件修改配置

vi node4/config.ini
将监听端口 20500 改为 20504
将监听端口 8945 改为 8949
将监听端口 30500 改为 30504

[rpc]
    channel_listen_ip=0.0.0.0
    channel_listen_port=20504
    jsonrpc_listen_ip=127.0.0.1
    jsonrpc_listen_port=8949
    disable_dynamic_group=false
[p2p]
    listen_ip=0.0.0.0
    listen_port=30504
    ; nodes to connect
  • 进入node4目录,拷贝节点启动停止指令文件

cd node4 && cp ../node0/*.sh .
  • 启动新节点

./start.sh

启动失败问题解决

[root@gen-173-168-063-126 node4]# ./start.sh
003f404c5163d7333f6d62e84d46983fc73fbedd20cc2882c0a47d1638bcac33
  Exceed waiting time. Please try again to start node4
Error: No such object: rootfisconodes127.0.0.1node4

# 解决方法:
vi start.sh
# 将中间行的一段 sleep 1.5 注释掉再次运行即可
  • 修改新节点配置,并查看节点的nodeid文章来源地址https://www.toymoban.com/news/detail-629284.html

# 进入conf目录,查看节点的nodeid
cd conf/ 
cat node.nodeid
# 复制 nodeid

# 进入console目录,启动Console控制台
cd /fisco/console && bash start.sh

# 将新节点作为观察节点加入群组1当中,并检查是否加入成功
# 查看观察节点列表
getObserverList

# 将新节点添加到观察节点列表中
addObserver (节点的nodeid)

# 检查是否加入成功
getObserverList

平台运维

添加新主机

新增节点

修改新节点状态,并监控

到了这里,关于任务1-2 区块链系统部署与运维(15分)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第二套区块链系统部署与运维

    第二套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 docker: 20.10.21 webase-deploy : 1.5.5 mysql: 8.0.34 使用 build_chain.sh 脚本文件进行搭建区块链 ,要求: 四节点,默认配置,单机,docker

    2024年02月08日
    浏览(112)
  • 区块链部署与运维

    也可以参考该链接 搭建第一个区块链网络 — FISCO BCOS 2.0 v2.9.0 文档 之后按照上面的命令检查进程   注意该路径需要按照你自己配置的环境进行,可以先去fisco-bcos/nodes中输入tree -a,查看配置文件的位置,复制到console/conf中,姑该命令在console中进行   可以参考一键部署 — WeBA

    2024年04月09日
    浏览(38)
  • 区块链部署与运维2

    参考: 账户权限控制 — FISCO BCOS 2.0 v2.9.0 文档 在生成账户之前可能会出现下面的错误, 解决方法如下: 生成账户:a1,a2,a3   验证:   新增委员a1: 新增委员a2: 新增委员a3: a1操作:  a2操作: 验证:    a1操作: a2操作: a2需要在a2里面进行下面的代码:   验证:   a1操作:

    2024年02月05日
    浏览(40)
  • JAVA开发与运维(web生产环境部署)

    web生产环境部署,往往是分布式,和开发环境或者测试环境我们一般使用单机不同。 一、部署内容 1、后端服务 2、后台管理系统vue 3、小程序 二、所需要服务器 5台前端服务器  8台后端服务 三、所需要的第三方组件 redis mysql clb OSS CDN WAF RocketMQ redis用来缓存应用的数据 mysq

    2024年02月04日
    浏览(45)
  • JAVA开发与运维(怎么通过docker部署微服务jar包)

    目标: 通过docker的方式部署微服务。 我们通过java开发的微服务可以打成jar包,我们可以直接通过裸机部署,也可以通过docker来部署,本文介绍通过docker来部署微服务。 Docker 是一个用于开发,交付和运行应用程序的开放平台。 Docker 将应用程序与基础架构分开,从而可以快速

    2024年02月09日
    浏览(44)
  • 1+x网络系统建设与运维(中级)-练习题

    同理可得,所有交换机和路由器都用一下命令配置 Huaweisys [Huawei]sysn LSW1   LSW1: [LSW1]vlan batch 10 20 [LSW1]int e0/0/1 [LSW1-Ethernet0/0/1]port link-type access [LSW1-Ethernet0/0/1]port default vlan 10 [LSW1-Ethernet0/0/1]int e0/0/2 [LSW1-Ethernet0/0/2]port link-type access [LSW1-Ethernet0/0/2]port default vlan 20 [LSW1-Ethernet0/0

    2024年02月04日
    浏览(48)
  • 华为1+X认证网络系统管理与运维中级实验

    实验拓扑 ​ ​ 配置参数 ​ ​ ​ ​ ​ ​ 任务1:设备命名 为了方便后期维护和故障定位及网络的规范性,需要对网络设备进行规范化命名。 请根据Figure 3-1实验考试拓扑对设备进行命名。 命名规则为:城市-设备的设置地点-设备的功能属性和序号-设备型号。 例如::处于

    2024年02月05日
    浏览(63)
  • 2023 网络建设与运维 X86架构计算机操作系统安装与管理题解

    任务描述: 随着信息技术的快速发展,集团计划2023年把部分业务由原有的X86架构服务器上迁移到ARM架构服务器上,同时根据目前的部分业务需求进行了部分调整和优化。 一、X86架构计算机操作系统安装与管理 1.PC1系统为ubuntu-desktop-amd64系统(已安装,语言为英文),登录用

    2024年02月11日
    浏览(95)
  • 15运维了解流程编排工具 Airflow 的基本用法,包括 DAG 编写、任务调度

    什么是 Airflow? 安装和配置 DAG 编写 任务调度 总结 Airflow 是一个基于 Python 的开源流程编排工具,它可以帮助用户创建、调度和监控复杂的工作流程。它是由 Airbnb 公司开发的,并在 2015 年开源,目前已成为 Apache 基金会的顶级项目之一。 Airflow 的主要特点包括: 可编程:使

    2024年02月15日
    浏览(66)
  • Memcache简介与运维

            开源、高性能、高并发的分布式内存缓存系统。          缓存关系型数据库的结果,减少数据库自身访问的次数。 memcache                              纯内存 redis、memcachedb               可持久化存储,同时会使用磁盘存         数据

    2024年01月21日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包