使用 Docker Compose 部署 Halo 2.x 与 MySQL
使用 Docker Compose 部署 Halo 2.x 与 MySQL
本文主要介绍使用
Docker Compose
部署Halo 2.x
和MySQL
, 主要针对小白。 有一定基础的, 可以直接去官网查看。
博主博客
- https://blog.uso6.com
- https://blog.csdn.net/dxk539687357
一、Docker 与 Docker Compose 安装
1.1 Docker 安装
先使用下面命令, 判断系统是都已经安装 Docker
, 如果已经安装, 会正常数据 Docker
的版本。 如果已经安装, 跳过此步骤。
root@nukixPC:~$ docker --version
Docker version 24.0.7, build afdd53b
如果没有安装,使用下面命令进行一键安装。
root@nukixPC:~/Desktop$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
+ sudo -E sh -c 'apt-get update -qq >/dev/null'+ sudo -E sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null'
+ sudo -E sh -c 'install -m 0755 -d /etc/apt/keyrings'
+ sudo -E sh -c 'curl -fsSL "https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg'
+ sudo -E sh -c 'chmod a+r /etc/apt/keyrings/docker.gpg'
+ sudo -E sh -c 'echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list'
+ sudo -E sh -c 'apt-get update -qq >/dev/null'
+ sudo -E sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null'
+ sudo -E sh -c 'docker version'
Client: Docker Engine - CommunityVersion: 24.0.7API version: 1.43Go version: go1.20.10Git commit: afdd53bBuilt: Thu Oct 26 09:08:26 2023OS/Arch: linux/arm64Context: defaultServer: Docker Engine - CommunityEngine:Version: 24.0.7API version: 1.43 (minimum version 1.12)Go version: go1.20.10Git commit: 311b9ffBuilt: Thu Oct 26 09:08:26 2023OS/Arch: linux/arm64Experimental: falsecontainerd:Version: 1.6.26GitCommit: 3dd1e886e55dd695541fdcd67420c2888645a495runc:Version: 1.1.10GitCommit: v1.1.10-0-g18a0cb0docker-init:Version: 0.19.0GitCommit: de40ad0================================================================================To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:dockerd-rootless-setuptool.sh installVisit https://docs.docker.com/go/rootless/ to learn about rootless mode.To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/WARNING: Access to the remote API on a privileged Docker daemon is equivalentto root access on the host. Refer to the 'Docker daemon attack surface'documentation for details: https://docs.docker.com/go/attack-surface/================================================================================
安装完后, 再使用 docker --version
确认安装成功即可。
1.2 Docker Compose 安装
先使用下面命令, 判断系统是都已经安装 Docker Compose
, 如果已经安装, 会正常数据 Docker Compose
的版本。 如果已经安装, 跳过此步骤。由于版本的差异, docker compose
与 docker-compose
其中一个可以使用即可。
root@nukixPC:~$ docker compose version
Docker Compose version v2.21.0[root@nukixPC ~]# docker-compose --version
Docker Compose version v2.17.3
如果没有安装,使用下面命令进行一键安装。
root@nukixPC:~/Desktop$ sudo curl -L https://get.daocloud.io/docker/compose/releases/download/v2.23.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 162 100 162 0 0 708 0 --:--:-- --:--:-- --:--:-- 710
安装完后, 再使用 docker compose version
与 docker-compose --version
确认安装, 其中一个安装成功即可, 哪个成功, 下面就使用哪个作为语句。
1.3 常用命令
# 启动 docker 服务
systemctl start docker
# 停止 docker 服务
systemctl stop docker
# 重新启动 docker 服务
systemctl restart docker
# 把 docker 设置为开机启动
systemctl enable docker
# 取消 docker 开机启动
systemctl disable docker# 下面的命令根据 docker compose version 与 docker-compose --version 决定使用哪一个
# 根据 docker-compose.yaml 配置启动服务(必须 cd 到 docker-compose.yaml 目录)
docker compose up -d
docker-compose up -d
# 根据 docker-compose.yaml 配置停止服务(必须 cd 到 docker-compose.yaml 目录)
docker compose down
docker-compose down
注意: 确保每次改配置前, 先调用 docker compose down
关闭容器。
二、官网配置运行
2.1 官网默认配置
首先创建一个文件夹, 任意位置即可, 官方推荐使用 ~/halo
目录。
mkdir ~/halo && cd ~/halo
然后创建 docker-compose.yaml
配置文件。
vim ~/halo/docker-compose.yaml
把下面配置文件复制进去
version: "3"services:halo:image: halohub/halo:2.11container_name: halorestart: on-failure:3depends_on:halodb:condition: service_healthynetworks:halo_network:volumes:- ./halo2:/root/.halo2ports:- "8090:8090"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]interval: 30stimeout: 5sretries: 5start_period: 30scommand:- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo- --spring.r2dbc.username=root# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。- --spring.r2dbc.password=o#DwN&JSa56- --spring.sql.init.platform=mysql# 外部访问地址,请根据实际需要修改- --halo.external-url=http://localhost:8090/halodb:image: mysql:8.1.0container_name: halodbrestart: on-failure:3networks:halo_network:command: - --default-authentication-plugin=caching_sha2_password- --character-set-server=utf8mb4- --collation-server=utf8mb4_general_ci- --explicit_defaults_for_timestamp=truevolumes:- ./mysql:/var/lib/mysql- ./mysqlBackup:/data/mysqlBackupports:- "3306:3306"healthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]interval: 3sretries: 5start_period: 30senvironment:# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值- MYSQL_ROOT_PASSWORD=o#DwN&JSa56- MYSQL_DATABASE=halonetworks:halo_network:
然后在 ~/halo
文件夹中, 使用配置启动容器。(如果上面 docker-compose --version
可用, 那么此处应该使用 sudo docker-compose up -d
)
root@nukixPC:~/halo$ sudo docker compose up -d[+] Running 22/22✔ halodb 10 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 87.4s ✔ e39ec8f010eb Pull complete 49.0s ✔ e2b7fadc33ec Pull complete 33.7s ✔ 9d193449aafd Pull complete 38.2s ✔ 6ea497c74b15 Pull complete 38.9s ✔ 7778acbf55f3 Pull complete 40.8s ✔ b65a5d7a2435 Pull complete 40.3s ✔ cef9fb0078a5 Pull complete 58.7s ✔ 5b6dc73ec724 Pull complete 42.2s ✔ d992bb39e209 Pull complete 77.5s ✔ 4431432b89a3 Pull complete 50.4s ✔ halo 10 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 42.6s ✔ 7734efb8b826 Pull complete 19.3s ✔ 99aeb38bcf66 Pull complete 12.2s ✔ f11698de8208 Pull complete 16.2s ✔ fba9be95bc5e Pull complete 20.0s ✔ 2aeadb252420 Pull complete 17.6s ✔ b7b59b0b46ed Pull complete 36.6s ✔ be3c46ee9bf6 Pull complete 22.3s ✔ e9881bf6fa6f Pull complete 23.4s ✔ 52f80228d2cb Pull complete 32.0s ✔ 3dceb7e8fe22 Pull complete 27.0s
[+] Running 3/3✔ Network halo_halo_network Created 0.1s ✔ Container halodb Healthy 0.1s ✔ Container halo Started 0.0s
执行完命令后可以使用下面命令查看状态。
netstat -nlt
用来查看端口占用情况, 上面的 docker-compose.yaml
文件配置了 Halo
的端口为 8090
, MySQL
的端口为 3306
。
root@nukixPC:~/halo$ netstat -nltActive Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
tcp6 0 0 :::8090 :::* LISTEN
docker ps
可以查看运行中的容器。
root@nukixPC:~/Desktop/halo$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19ac11fb439c halohub/halo:2.11 "sh -c 'java ${JVM_O…" 42 seconds ago Up 32 seconds (healthy) 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp halo
08d024cbe9c1 mysql:8.1.0 "docker-entrypoint.s…" 42 seconds ago Up 41 seconds (healthy) 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp halodb
数据文件生成, 这时候可以看到 ~/halo
文件夹中多了 3 个文件夹。
其中 halo2
是 halo2 的数据文件夹, mysql
和 mysqlBackup
是 mysql 的数据文件夹。
root@nukixPC:~/halo$ ls
docker-compose.yaml halo2 mysql mysqlBackuproot@nukixPC:~/halo$ ls halo2
indices keys logs themesroot@nukixPC:~/halo$ ls mysql
'#ib_16384_0.dblwr' auto.cnf ca-key.pem halo mysql private_key.pem sys
'#ib_16384_1.dblwr' binlog.000001 ca.pem ib_buffer_pool mysql.ibd public_key.pem undo_001
'#innodb_redo' binlog.000002 client-cert.pem ibdata1 mysql.sock server-cert.pem undo_002
'#innodb_temp' binlog.index client-key.pem ibtmp1 performance_schema server-key.pemroot@nukixPC:~/halo$ ls mysqlBackup
这时候可以打开浏览器, 输入 http://[输入这台服务器的IP]:8090
即可进入 Halo 2
的配置页面, 配置完成即可进入博客。
2.2 MySQL 修改密码
需要修改两个地方, 一个是 mysql 容器配置的密码 MYSQL_ROOT_PASSWORD
, 另外一个是 Halo2
容器连接 mysql 时用到的密码 --spring.r2dbc.password
。 比如我要把密码修改为 88888888
, 那么修改 docker-compose.yaml
, 修改前记得使用 docker compose down
关闭容器。
...
- --spring.r2dbc.password=88888888
...
- MYSQL_ROOT_PASSWORD=88888888
...
使用命令 docker compose up -d
启动服务。 这时候大概率启动失败,halo 容器启动不了。
root@nukixPC:~/halo$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92805e3dcc42 halohub/halo:2.11 "sh -c 'java ${JVM_O…" About a minute ago Up 2 seconds (health: starting) 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp halo
ef5c6a3d9462 mysql:8.1.0 "docker-entrypoint.s…" About a minute ago Up About a minute (healthy) 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp halodb
这时候可以使用 docker logs [CONTAINER ID]
查看 log。
root@nukixPC:~/halo$ sudo docker logs 92805e3dcc42...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'r2dbcScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/R2dbcInitializationConfiguration.class]: Failed to execute database scriptat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1775) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.1.jar:6.1.1]at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) ~[spring-context-6.1.1.jar:6.1.1]at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar:6.1.1]at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-3.2.0.jar:3.2.0]
会发现报错, 提示数据库连接失败。 这是因为首次进入的时候已经使用密码对数据库进行初始化, 所以直接改 docker-compose.yaml
配置不会生效。所以这里提供两种解决方法。
- 如果是刚创建没有重要数据, 直接使用
sudo rm -rd mysql*
删除上面提到的mysql
和mysqlBackup
文件夹。然后重新docker compose up -d
即可启动。 - 把配置改回改之前的密码, 比如一开始用的是
o#DwN&JSa56
, 改回去后docker compose up -d
启动。再通过远程 mysql, 使用命令更换 mysql 密码。 修改完后, 在修改docker-compose.yaml
为修改后的密码, 再次启动即可。
2.3 修改端口
比如我要把 halo 2
修改为 9090
端口, mysql
修改为 9089
端口, 那么先修改 docker-compose.yaml
。
...
ports:- "9090:8090"
healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9090/actuator/health/readiness"]
# 外部访问地址,请根据实际需要修改- --halo.external-url=http://localhost:9090/
...
ports:- "9089:3306"
...
然后使用 docker compose up -d
启动容器即可。可以查看端口占用情况
parallels@ubuntu-linux-22-04-desktop:~/Desktop/halo$ netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9089 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::9089 :::* LISTEN
tcp6 0 0 :::9090 :::* LISTEN
可以看到端口成功被修改, 可以通过浏览器访问 http://[输入这台服务器的IP]:9090
即可打开博客。
参考文献
- 使用 Docker Compose 部署
相关文章:
使用 Docker Compose 部署 Halo 2.x 与 MySQL
使用 Docker Compose 部署 Halo 2.x 与 MySQL 本文主要介绍使用 Docker Compose 部署 Halo 2.x 和 MySQL, 主要针对小白。 有一定基础的, 可以直接去官网查看。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 一、Docker 与 Dock…...

openGauss学习笔记-179 openGauss 数据库运维-逻辑复制-发布订阅
文章目录 openGauss学习笔记-179 openGauss 数据库运维-逻辑复制-发布订阅179.1 发布179.2 订阅179.3 冲突处理179.4 限制179.5 架构179.6 监控179.7 安全性179.8 配置设置179.9 快速设置 openGauss学习笔记-179 openGauss 数据库运维-逻辑复制-发布订阅 发布和订阅基于逻辑复…...

2023十大编程语言及未来展望
2023十大编程语言及未来展望 1. 2023年十大编程语言排行榜2. 十大编程语言未来展望PythonCCJavaC#JavaScriptPHPVisual BasicSQLAssembly language 1. 2023年十大编程语言排行榜 TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎&a…...
Docker启动各种服务
文章目录 1 启动MySQL2 启动maven,用于编译java程序3 容器内启动sshd,用于远程编码和调试 1 启动MySQL 守护方式运行一个容器: docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD123456 -p 3307:3306 -d mysql进入容器: dock…...
AndroidR集成三方Native服务组件
一、背景 该项目为海外欧盟市场版本,需集成三方IDS安全组件,进程运行时注入iptables指令至链表,检测网络运行状态,并收集异常日志并压缩打包成gz文件,提供给Android上层应用上报云端。 二、分析 1、将提供的组件包集成至系统vendor分区 /vendor/bin/idsLogd/vendor/li…...

C++连接数据库(DataBase)之加载外部依赖项
文章目录 在VS中进行配置一、 先找到VS的解决方案资源管理器:二、 找到“属性”,进行附加项配置三、 移植libmysql.dll目录 在VSCode中进行配置依赖文件的移动库文件的移动可能遇到的问题 重点!!!!…...

论文阅读——Slide-Transformer(cvpr2023)
Slide-Transformer: Hierarchical Vision Transformer with Local Self-Attention 一、分析 1、改进transformer的几个思路: (1)将全局感受野控制在较小区域,如:PVT,DAT,使用稀疏全局注意力来…...
【Flink-Kafka-To-Mysql】使用 Flink 实现 Kafka 数据写入 Mysql(根据对应操作类型进行增、删、改操作)
【Flink-Kafka-To-Mysql】使用 Flink 实现 Kafka 数据写入 Mysql(根据对应操作类型进行增、删、改操作) 1)导入依赖2)resources2.1.appconfig.yml2.2.application.properties2.3.log4j.properties2.4.log4j2.xml 3)uti…...

SpringMVC学习与开发(四)
注:此为笔者学习狂神说SpringMVC的笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!! 11、Ajax初体验 1、伪造Ajax 结果:并未有xhr异步请求 <!DOCTYPE html> &…...

odoo17核心概念view7——listview总体框架分析
这是view系列的第七篇文章,今天主要介绍我们最常用的list视图。 1、先看list_view,这是主文件 /** odoo-module */import { registry } from "web/core/registry"; import { RelationalModel } from "web/model/relational_model/relational_mode…...

大创项目推荐 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv
文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 *…...

数字图像处理——亚像素边缘的轮廓提取
像素 像素是图像处理中的基本单位,一个像素是图像中最小的离散化单位,具有特定的位置和颜色信息。在数字图像中,每个像素都有一个特定的坐标,通常以行和列的形式表示。每个像素的颜色信息可以通过不同的表示方式,如灰…...

【六袆 - Framework】vue3入门;vue框架的特点矩阵列举;Vue.js 工作原理
vue框架的特点 Vue.js的特点展开叙述Vue.js的工作原理展开叙述 官方文档: https://cn.vuejs.org/guide/introduction.html Vue.js的特点 ┌────────────────────┬────────────────────────────────────…...

GO学习记录 —— 创建一个GO项目
文章目录 前言一、项目介绍二、目录介绍三、创建过程1.引入Gin框架、创建main2.加载配置文件3.连接MySQL、redis4.创建结构体5.错误处理、返回响应处理 前言 代码地址 下载地址:https://github.com/Lee-ZiMu/Golang-Init.git 一、项目介绍 1、使用Gin框架来创建项…...
C语言中的goto语句:使用、争议与最佳实践
各位少年: 引言: 在C语言编程中,goto语句是一个历史悠久且颇具争议的控制流结构。作为无条件跳转指令,它允许程序执行从当前点直接跳转到同一函数内的任意位置,由一个标签(label)来指定目标。尽…...
wpf-动态设置组件【按钮为例】样式
文章速览 解决方案具体实现Converter 部分创建样式Binding样式 坚持记录实属不易,希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区! 谢谢~ 解决方案 创建一个Converter,返回对应的style实现对应的修改 创建多个样式…...

40道MyBatis面试题带答案(很全)
1. 什么是MyBatis (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接…...
python:PyCharm更改.PyCharm配置文件夹存储位置
关联账号文章:另外的账号 在启动 PyCharm 后选择 Help -> Edit Custom Properties 的选项,弹出: 选择 Create ,之后在文件中添加配置文件新的存储位置即可,例如: idea.config.pathD:/Program Files/.Py…...

Centos安装Kafka(KRaft模式)
1. KRaft引入 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。其核心组件包含Producer、Broker、Consumer,以及依赖的Zookeeper集群。其中Zookeeper集群是Kafka用来负责集群元数据的管理、控制器的选举等。 由…...

学习笔记13——Spring整合Mybatis、junit、AOP、事务
学习笔记系列开头惯例发布一些寻亲消息 链接:https://baobeihuijia.com/bbhj/ Mybatis - Spring(使用第三方包new一个对象bean) 原始的Mybatis与数据库交互【通过sqlmapconfig来配置和连接】 初始化SqlSessionFactory获得连接获取数据层接口…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...