当前位置: 首页 > news >正文

【环境搭建】Metersphere v2.x 容器部署教程踩坑总结

前言

Metersphere部署过程中遇到的问题有点多,原因是其容器的架构蛮复杂的,比较容易踩坑,所以记录一下。

介绍

MeterSphere 是开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试管理、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付。
在这里插入图片描述

主页:https://metersphere.io/

源码:https://github.com/metersphere/metersphere

前置环境

Ubuntu 20.04
Docker version 27.3.1
docker-compose version 1.27.4
openjdk version “17.0.13”

MeterSphere-v2.4.0安装部署

首先以v2.4.0为例,直接给出我的sh:

if [ "$(id -u)" -ne 0 ]; thenecho "此脚本需要root权限,请使用sudo执行。"exit 1
fiwget https://github.com/metersphere/metersphere/releases/download/v2.4.0/metersphere-online-installer-v2.4.0.tar.gz --no-check-certificatetar zxvf metersphere-online-installer-v2.4.0.tar.gzcd metersphere-online-installer-v2.4.0#启用工作台
#CONFIG_FILE="install.conf"
#echo "修改配置文件..."
#sed -i 's/^MS_UI_ENABLED=false$/MS_UI_ENABLED=true/' "$CONFIG_FILE"
#sed -i 's/^MS_WORKSTATION_ENABLED=false$/MS_WORKSTATION_ENABLED=true/' "$CONFIG_FILE"#MYSQL降级
#sed -i 's/\${MS_IMAGE_PREFIX}\/mysql:8.0.33/\${MS_IMAGE_PREFIX}\/mysql:8.0.30/' "metersphere/docker-compose-mysql.yml"sudo ./install.shmsctl status

可以使用命令msctl status检查服务运行情况,正确部署后的输出如下所示:

       Name                     Command                  State                     Ports              
------------------------------------------------------------------------------------------------------
api-test             /deployments/run-java.sh         Up (healthy)   0.0.0.0:10000->10000/tcp,:::10000->10000/tcp, 0.0.0.0:10001->10001/tcp,:::10001->10001/tcp, 0.0.0.0:10002->10002/tcp,:::10002->10002/tcp, 0.0.0.0:10003->10003/tcp,:::10003->10003/tcp, 0.0.0.0:10004->10004/tcp,:::10004->10004/tcp, 0.0.0.0:10005->10005/tcp,:::10005->10005/tcp, 0.0.0.0:10006->10006/tcp,:::10006->10006/tcp, 0.0.0.0:10007->10007/tcp,:::10007->10007/tcp, 0.0.0.0:10008->10008/tcp,:::10008->10008/tcp, 0.0.0.0:10009->10009/tcp,:::10009->10009/tcp, 0.0.0.0:10010->10010/tcp,:::10010->10010/tcp                        
eureka               /deployments/run-java.sh         Up (healthy)                                    
gateway              /deployments/run-java.sh         Up (healthy)   0.0.0.0:8081->8000/tcp,:::8081->8000/tcp                          
kafka                /opt/bitnami/scripts/kafka ...   Up (healthy)   0.0.0.0:9092->9092/tcp,:::9092->9092/tcp                          
minio                /usr/bin/docker-entrypoint ...   Up (healthy)   0.0.0.0:9000->9000/tcp,:::9000->9000/tcp, 0.0.0.0:9001->9001/tcp,:::9001->9001/tcp                 
ms-data-streaming    /deployments/run-java.sh         Up (healthy)                                    
ms-node-controller   /deployments/run-java.sh         Up (healthy)   0.0.0.0:8082->8082/tcp,:::8082->8082/tcp, 0.0.0.0:9100->9100/tcp,:::9100->9100/tcp                 
ms-prometheus        /bin/prometheus --config.f ...   Up (healthy)   0.0.0.0:9090->9090/tcp,:::9090->9090/tcp                          
mysql                docker-entrypoint.sh mysqld      Up (healthy)   0.0.0.0:3307->3306/tcp,:::3307->3306/tcp, 33060/tcp               
nodeexporter         /bin/node_exporter --path. ...   Up (healthy)                                    
performance-test     /deployments/run-java.sh         Up (healthy)                                    
project-management   /deployments/run-java.sh         Up (healthy)                                    
redis                docker-entrypoint.sh redis ...   Up (healthy)   0.0.0.0:6379->6379/tcp,:::6379->6379/tcp                          
report-stat          /deployments/run-java.sh         Up (healthy)                                    
system-setting       /deployments/run-java.sh         Up (healthy)                                    
test-track           /deployments/run-java.sh         Up (healthy)                                                        
URL: http://$LOCAL_IP:8081
用户名: admin
初始密码: metersphere

在这里插入图片描述

然而整个过程并非这么顺利的,过程中会出现各种各样的问题(尤其是在服务器部署的情况下),我的建议是时刻检查安装目录在哪里,通过Debug找到到底是哪里的conf文件在生效,免得乱改一通发现压根没从这里读配置。。。
接下来说一些比较好解决的问题:

v2.4.0 Q&A

Q:部分容器(例如api-test等)起不来,msctl status显示mysql容器一直在restarting

$ msctl statusName                     Command                  State                                       Ports                                
------------------------------------------------------------------------------------------------------------------------------------------
eureka               /deployments/run-java.sh         Up (healthy)                                                                        
gateway              /deployments/run-java.sh         Up (healthy)   0.0.0.0:8081->8000/tcp,:::8081->8000/tcp                             
kafka                /opt/bitnami/scripts/kafka ...   Up (healthy)   0.0.0.0:9092->9092/tcp,:::9092->9092/tcp                             
minio                /usr/bin/docker-entrypoint ...   Up (healthy)   0.0.0.0:9000->9000/tcp,:::9000->9000/tcp,                            0.0.0.0:9001->9001/tcp,:::9001->9001/tcp                             
ms-data-streaming    /deployments/run-java.sh         Up (healthy)                                                                        
ms-node-controller   /deployments/run-java.sh         Up (healthy)   0.0.0.0:8082->8082/tcp,:::8082->8082/tcp,                            0.0.0.0:9100->9100/tcp,:::9100->9100/tcp                             
ms-prometheus        /bin/prometheus --config.f ...   Up (healthy)   0.0.0.0:9090->9090/tcp,:::9090->9090/tcp                             
mysql                docker-entrypoint.sh mysqld      Restarting                                                                          
nodeexporter         /bin/node_exporter --path. ...   Up (healthy)                                                                        
redis                docker-entrypoint.sh redis ...   Up (healthy)   0.0.0.0:6379->6379/tcp,:::6379->6379/tcp                             

A:这个问题一般出现在之前安装过高版本Metersphere的情况,看一下日志

$ docker logs mysql
2025-01-09 04:58:20+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
2025-01-09 04:58:20+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2025-01-09 04:58:20+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started.
'/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
2025-01-09T04:58:20.857320Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
2025-01-09T04:58:20.857349Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2025-01-09T04:58:20.857466Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1
2025-01-09T04:58:20.861214Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-01-09T04:58:21.299938Z 1 [ERROR] [MY-013171] [InnoDB] Cannot boot server version 80030 on data directory built by version 80033. Downgrade is not supported
mysqld: Can't open file: 'mysql.ibd' (errno: 0 - )
2025-01-09T04:58:21.594261Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2025-01-09T04:58:21.594352Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2025-01-09T04:58:21.594359Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-01-09T04:58:21.594589Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.30)  MySQL Community Server - GPL.

可以看到是mysql版本不匹配问题,修改metersphere-online-installer-v2.x.x/metersphere/docker-compose-mysql.yml,进行降级:

version: "2.1"
services:mysql:image: ${MS_IMAGE_PREFIX}/mysql:8.0.33container_name: mysqlhealthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p${MS_MYSQL_PASSWORD}"]interval: 6stimeout: 5sretries: 50environment:MYSQL_DATABASE: ${MS_MYSQL_DB}MYSQL_ROOT_PASSWORD: ${MS_MYSQL_PASSWORD}ports:- 3307:3306volumes:- ${MS_BASE}/metersphere/conf/my.cnf:/etc/mysql/conf.d/my.cnf- ${MS_BASE}/metersphere/bin/mysql:/docker-entrypoint-initdb.d/- ms-mysql-data:/var/lib/mysqlnetworks:- ms-networkrestart: alwayssystem-setting:depends_on:mysql:condition: service_healthyvolumes:ms-mysql-data:driver_opts:type: nonedevice: ${MS_BASE}/metersphere/data/mysqlo: bind

修改之后重新安装即可,当然也可以直接解除start_in_docker.sh里MYSQL降级部分的注释后重新执行即可

sed -i 's/\${MS_IMAGE_PREFIX}\/mysql:8.0.33/\${MS_IMAGE_PREFIX}\/mysql:8.0.30/' "metersphere/docker-compose-mysql.yml"

Q:工作台未启用,功能不齐全,左侧边栏只显示两种功能。

A:修改install.conf如下内容:

MS_UI_ENABLED=true
MS_WORKSTATION_ENABLED=true

执行msctl reload后,即可看到工作台容器已经启动便可以正常使用,访问UI后可以看到左侧边栏已经显示全面。当然也可以直接解除start_in_docker.sh里启用工作台部分的注释后重新执行即可

CONFIG_FILE="install.conf"
sed -i 's/^MS_UI_ENABLED=false$/MS_UI_ENABLED=true/' "$CONFIG_FILE"
sed -i 's/^MS_WORKSTATION_ENABLED=false$/MS_WORKSTATION_ENABLED=true/' "$CONFIG_FILE"

MeterSphere-v2.10.1-lts安装部署

再拿v2.10.1-lts版本举例:

$ wget https://github.com/metersphere/metersphere/releases/download/v2.10.1-lts/metersphere-online-installer-v2.10.1-lts.tar.gz --no-check-certificate
$ tar zxvf metersphere-online-installer-v2.10.1-lts.tar.gz
$ cd metersphere-online-installer-v2.10.1-lts
$ sudo ./install.sh
$ msctl statusName                  Command               State                Ports         
--------------------------------------------------------------------------------------
api-test             /deployments/run-java.sh   Up (healthy)   0.0.0.0:10000->10000/tcp,:::10000->10000/tcp, 0.0.0.0:10001->10001/tcp,:::10001->10001/tcp, 0.0.0.0:10002->10002/tcp,:::10002->10002/tcp, 0.0.0.0:10003->10003/tcp,:::10003->10003/tcp, 0.0.0.0:10004->10004/tcp,:::10004->10004/tcp, 0.0.0.0:10005->10005/tcp,:::10005->10005/tcp, 0.0.0.0:10006->10006/tcp,:::10006->10006/tcp, 0.0.0.0:10007->10007/tcp,:::10007->10007/tcp, 0.0.0.0:10008->10008/tcp,:::10008->10008/tcp, 0.0.0.0:10009->10009/tcp,:::10009->10009/tcp, 0.0.0.0:10010->10010/tcp,:::10010->10010/tcp  
eureka               /deployments/run-java.sh   Up (healthy)                          
gateway              /deployments/run-java.sh   Up (healthy)   0.0.0.0:8081->8000/tcp,:::8081->8000/tcp      
kafka                /opt/bitnami/scripts/kaf   Up (healthy)   0.0.0.0:9092->9092/tcp,ka ...                                    :::9092->9092/tcp      
minio                /usr/bin/docker-           Up (healthy)   0.0.0.0:9000->9000/tcp,entrypoint ...                            :::9000->9000/tcp, 0.0.0.0:9001->9001/tcp,:::9001->9001/tcp          
ms-data-streaming    /deployments/run-java.sh   Up (healthy)                          
ms-node-controller   sh -c sed -i               Up (healthy)   0.0.0.0:8082->8082/tcp,"s/:101:/:136 ...                         :::8082->8082/tcp, 0.0.0.0:9100->9100/tcp,:::9100->9100/tcp          
ms-prometheus        /bin/prometheus            Up (healthy)   0.0.0.0:9091->9090/tcp,--config.f ...                            :::9091->9090/tcp      
mysql                docker-entrypoint.sh       Up (healthy)   0.0.0.0:3306->3306/tcp,mysqld                                    :::3306->3306/tcp,     33060/tcp              
nodeexporter         /bin/node_exporter         Up (healthy)                          --path. ...                                                      
performance-test     /deployments/run-java.sh   Up (healthy)                          
project-management   /deployments/run-java.sh   Up (healthy)                          
redis                docker-entrypoint.sh       Up (healthy)   0.0.0.0:6379->6379/tcp,redis ...                                 :::6379->6379/tcp      
report-stat          /deployments/run-java.sh   Up (healthy)                          
system-setting       /deployments/run-java.sh   Up (healthy)                          
test-track           /deployments/run-java.sh   Up (healthy)                          
workstation          /deployments/run-java.sh   Up (healthy) 

v2.10.1-lts Debug

Debug1:访问Web UI有{"success":false,"message":"401 UNAUTHORIZED \"Not found session, Please Login again.\"","data":null}报错,一定要等待所有容器Up并healthy状态,后再等5min访问Web UI(不要中途切换)。

Debug2:9090端口号占用问题,在docker-compose-prometheus.ymlinstall.conf修改为9091即可。

# Debug3: Additionally
$ msctl restart gateway
$ msctl restart workstation
$ msctl restart prometheus

相关文章:

【环境搭建】Metersphere v2.x 容器部署教程踩坑总结

前言 Metersphere部署过程中遇到的问题有点多,原因是其容器的架构蛮复杂的,比较容易踩坑,所以记录一下。 介绍 MeterSphere 是开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试管理、接口测试、UI 测试和性能测…...

系统看门狗配置--以ubuntu为例

linux系统配置看门狗 以 ubuntu 系统配置看门狗为例 配置看门狗使用的脚本文件,需要使用管理员权限来执行: 配置是:系统每 30S 喂一次狗,超过 60S 不进行投喂,就会自动重启。 1. 系统脚本内容: #!/bin/b…...

阅读笔记——《A survey of protocol fuzzing》

【参考文献】Zhang X, Zhang C, Li X, et al. A survey of protocol fuzzing[J]. ACM Computing Surveys, 2024, 57(2): 1-36.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 目录 1、Introduction 2、Background 2.1、Communication Pro…...

C# 语法中级

总目录 C# 语法总目录 C# 语法中级 lambda 表达式1. 捕获外部变量2. 捕获迭代变量 匿名类型匿名方法异常相关1. 枚举器2. 可枚举对象3. 迭代器3. 迭代器语义4. yield break 语句5. 组合序列 可空类型1. Nullable< T > 结构体 lambda 表达式 编译器在内部将lambda表达式编…...

STORM:从多时间点2D图像中快速重建动态3D场景的技术突破

随着计算机视觉和机器学习技术的迅猛发展,我们已经能够利用AI来解决许多复杂的问题。然而,在处理大规模室外动态3D场景重建时,现有的方法往往面临着诸多挑战,如需要大量人工标注数据、处理速度慢以及难以准确捕捉移动物体等。为了解决这些问题,研究者们开发了STORM(Spati…...

excel前缀和(递增求和)

方法一&#xff1a;https://www.zhihu.com/zvideo/1382164996659515392?utm_id0 假设输入数据在B2:B10&#xff0c;选中单元格C2&#xff0c;输入SUM(B2:B2&#xff0c;然后选中其中的B2&#xff0c;按F4&#xff08;或者直接输入SUM(B$2:B2&#xff09;&#xff0c;回车确认&…...

【AI日记】25.01.11 Weights Biases | AI 笔记 notion

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛&#xff1a;Forecasting Sticker Sales笔记&#xff1a;我的 AI 笔记主要记在两个地方 有道云笔记&#xff1a;数学公式和符号比较多的笔记notion&#xff1a;没什么数学公式的…...

P8772 [蓝桥杯 2022 省 A] 求和

题目描述 给定 &#x1d45b; 个整数 &#x1d44e;1,&#x1d44e;2,⋯ ,&#x1d44e;&#x1d45b; 求它们两两相乘再相加的和&#xff0c;即 &#x1d446;&#x1d44e;1⋅&#x1d44e;2&#x1d44e;1⋅&#x1d44e;3⋯&#x1d44e;1⋅&#x1d44e;&#x1d45b;&…...

【Oracle篇】深入了解执行计划中的访问路径(含表级别、B树索引、位图索引、簇表四大类访问路径)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;从事IT领域✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、NoSQL(…...

WSDL的基本概念

《WSDL 语法》这篇文章将详细介绍WSDL&#xff08;Web Services Description Language&#xff09;的语法。WSDL是一种基于XML的语言&#xff0c;用于描述Web服务及其访问方式。它允许开发者将Web服务定义为服务访问点或端口的集合&#xff0c;这些服务访问点可以通过特定的协议…...

RabbitMQ解决消息积压的方法

目录 减少发送mq的消息体内容 增加消费者数量 批量消费消息 临时队列转移 监控和预警机制 分阶段实施 最后还有一个方法就是开启队列的懒加载 这篇文章总结一下自己知道的解决消息积压得方法。 减少发送mq的消息体内容 像我们没有必要知道一个的中间状态&#xff0c;只需…...

Android 网络层相关介绍

关注 Android 默认支持的网络管理行为,默认支持的网络服务功能。 功能术语 术语缩写全称释义DHCPv6Dynamic Host Configuration Protocol for IPv6动态主机配置协议的第六版,用于在IPv6网络中动态分配IP地址和其他网络配置参数。DNS Domain Name System域名系统。LLALink-Loc…...

2025年第三届“华数杯”国际赛B题解题思路与代码(Matlab版)

问题1&#xff1a;产业关联性分析 在 question1.m 文件中&#xff0c;我们分析了中国主要产业之间的相互关系。以下是代码的详细解读&#xff1a; % 问题1&#xff1a;分析中国主要产业之间的相互关系function question1()% 清空工作区和命令窗口clear;clc;% 设置中文显示set…...

小米路由器IPv6 功能使用指南

本文不限于多层路由使用IPv6 的情况&#xff0c;提供解决IPv6 无法获取的更硬核的方法&#xff0c;需要有ssh 工具。&#xff08;无安卓设备&#xff0c;测试环境win、mac、ios&#xff09; 首先明确一点&#xff0c;就是如果想让你的设备得到GUA 地址&#xff0c;即访问 6.i…...

k8s dashboard离线部署步骤

确定k8s版本&#xff0c;以1.23为例。 部署metrics-server服务&#xff0c;最好用v0.5.2。 用v0.6.0&#xff0c;可能会报以下错误&#xff1a; nodekubemaster:~/Desktop/metric$ kubectl top nodes Error from server (ServiceUnavailable): the server is currently unabl…...

Wireshark抓包教程(2024最新版个人笔记)

改内容是个人的学习笔记 Wireshark抓包教程&#xff08;2024最新版&#xff09;_哔哩哔哩_bilibili 该课程笔记1-16 wireshark基础 什么是抓包工具&#xff1a;用来抓取数据包的一个软件 wireshark的功能&#xff1a;用来网络故障排查&#xff1b;用来学习网络技术 wireshark下…...

稀疏矩阵:BM25;稠密矩阵:RoBERTa - wwm - ext顺序

稀疏矩阵:BM25;稠密矩阵:RoBERTa - wwm - ext顺序 先后顺序 先BM25后RoBERTa - wwm - ext: 流程说明:首先可以使用BM25进行初步的检索。由于BM25是基于词频等统计信息的检索模型,它能够快速地从大规模文档集合中筛选出可能包含相关信息的文档子集。例如,在一个包含大量新…...

C# 结构体(Struct)

C# 结构体(Struct) 引言 在C#编程语言中,结构体(Struct)是一种值类型,它允许用户自定义数据类型。结构体可以包含多个成员,如字段、属性、构造函数和方法。与类(Class)相似,但结构体在内存管理、性能和继承方面有其独特的特点。本文将详细介绍C#结构体的概念、用法…...

Homestyler 和 Tripo AI 如何利用人工智能驱动的 3D 建模改变定制室内设计

让设计梦想照进现实 在Homestyler,我们致力于为每一个梦想设计师提供灵感的源泉,而非挫折。无论是初学者打造第一套公寓,或是专业设计师展示作品集,我们的直观工具都能让您轻松以惊人的3D形式呈现空间。 挑战:实现定制设计的新纪元 我们知道,将个人物品如传家宝椅子、…...

Python的pandas库基础知识(超详细教学)

目录 一、配置环境 二、序列和数据表 2.1 初始化 2.2 获取数值 2.3 获取索引 2.4 索引取内容 2.5 索引改变取值 2.6 字典生成序列 2.7 计算取值出现次数 2.8 数据表 2.9 数据表添加新变量 2.10 获取列名 2.11 根据列名获取数据 2.12 输出固定行 2.13 输出多行…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...