Mac M2基于MySQL 8.4.3搭建(伪)主从集群
前置准备工作
安装MySQL 8.4.3
- 参考博主之前的文档,在本地Mac安装好MySQL:Mac M2 Pro安装MySQL 8.4.3
- 安装目录:
/usr/local/mysql
,安装好的MySQL都处于运行状态,需要先停止MySQL服务 - 最快的方式:系统设置 → \rightarrow → MySQL → \rightarrow → Stop MySQL Server
设置环境变量
-
向
~/.zshrc
添加如下内容,export MYSQL_BASE=/usr/local/mysql # 在用户目录下创建mysql主从集群目录 export MYSQL_CLUSTER=/Users/xxx/tmp/mysql # 3306端口对应master, 3307端口对应slave, 这里只创建两个节点 export MYSQL_MASTER=${MYSQL_CLUSTER}/3306 export MYSQL_SLAVE=${MYSQL_CLUSTER}/3307
-
执行
source ~/.zshrc
让环境变量生效
创建集群目录
- 创建 “主/从节点” 对应的目录
# -p: 自动创建缺失的父目录, -v: 显示创建好的目录名 mkdir -pv $MYSQL_MASTER $MYSQL_SLAVE mkdir -pv $MYSQL_MASTER/data $MYSQL_MASTER/log mkdir -pv $MYSQL_SLAVE/data $MYSQL_SLAVE/log
- 如果环境变量生效,将在
/Users/xxx/tmp/mysql
创建出3306
和3307
端口的对应目录# 以master为例 cd $MYSQL_MASTER ls -al # 将显示创建好的data log目录
启动master
新建cnf文件
-
在
$MYSQL_MASTER
目录下新建3306.cnf
文件,内容如下:[mysqld] # mysql启动用户 user=mysql # 服务字符集 character-set-server=utf8 # 端口 port=3306 bind-address = 0.0.0.0 # 用于通讯的套接字,由于是一机多实例,所以区分开 socket=/Users/xxx/tmp/mysql/3306/mysql.sock # mysql安装目录 basedir=/usr/local/mysql # 数据存放目录 datadir=/Users/xxx/tmp/mysql/3306/data # master节点唯一标识 server-id=1 gtid_mode=ON enforce-gtid-consistency=true # master-info-repository=TABLE # relay-log-info-repository=TABLE # bin-log前缀 log-bin=master-bin # bin-log-index前缀 log-bin-index=master-bin.index binlog_format=ROW # 开启 mysql_native_password 认证 mysql_native_password=ON[mysqld_safe] # 启动错误日志输出地址(可以改成自己的目录) log-error=/Users/xxx/tmp/mysql/3306/log/err.log
-
修改上述文件为可执行文件:
chmod 0755 $MYSQL_MASTER/3306.cnf
初始化master
-
初始化master
${MYSQL_BASE}/bin/mysqld --defaults-file=${MYSQL_MASTER}/3306.cnf --initialize-insecure --explicit_defaults_for_timestamp --user=mysql --basedir=${MYSQL_BASE} --datadir=${MYSQL_MASTER}/data
-
如果初始化成功,会有如下提示信息
启动master进程
-
启动master
${MYSQL_BASE}/bin/mysqld_safe --defaults-file=${MYSQL_MASTER}/3306.cnf &
-
启动成功后,
ps -ef | grep "mysql" | grep "3306"
命令查看,将新增两个进程
-
同时,在
$MYSQL_MASTER
目录将新增两个套接字相关的文件
-
此时,可以通过root用户、以空密码的方式登录mysql:
mysql -h 127.0.0.1 -u root -p
启动slave
创建cnf文件
-
在
$MYSQL_SLAVE
目录下新建3307.cnf
文件,内容如下:[mysqld] # mysql启动用户 user=mysql # 服务字符集 character-set-server=utf8 # 端口 port=3307 # 用于通讯的套接字,由于是一机多实例,所以区分开 socket=/Users/bytedance/tmp/mysql/3307/mysql.sock # mysql安装目录 basedir=/usr/local/mysql # 数据存放目录 datadir=/Users/bytedance/tmp/mysql/3307/data # master节点唯一标识 server-id=2 gtid_mode=ON enforce-gtid-consistency=true log_slave_updates=ON skip-slave-start=1 #master-info-repository=TABLE #relay-log-info-repository=TABLE # bin-log前缀 log-bin=master-bin # bin-log-index前缀 log-bin-index=master-bin.index binlog_format=ROWmysql_native_password=ON[mysqld_safe] # 启动错误日志输出地址(可以改成自己的目录) log-error=/Users/bytedance/tmp/mysql/3307/log/err.log
-
修改上述文件为可执行文件:
chmod 0755 $MYSQL_SLAVE/3307.cnf
初始化slave
-
初始化slave
${MYSQL_BASE}/bin/mysqld --defaults-file=${MYSQL_SLAVE}/3307.cnf --initialize-insecure --explicit_defaults_for_timestamp --user=mysql --basedir=${MYSQL_BASE} --datadir=${MYSQL_SLAVE}/data
-
slave初始化成功的信息同初始化master,参考上面的截图即可
启动slave进程
-
启动slave
${MYSQL_BASE}/bin/mysqld_safe --defaults-file=${MYSQL_SLAVE}/3307.cnf &
-
启动成功后,
ps -ef | grep "mysql" | grep "3307"
命令查看,将新增两个进程
-
同时,在
$MYSQL_SLAVE
目录将新增两个套接字相关的文件
-
此时,可以通过root用户、以空密码的方式登录mysql:
mysql -h127.0.0.1 -P3307 -uroot -p
(截图省略,同master)
开启主从复制
master上的操作
创建主从复制用户
-
(可跳过)为root用户设置密码
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '123456'; flush privileges;
-
创建主从复制用户
create user 'replica'@'%' identified with 'mysql_native_password' by '123456'; grant replication client,replication slave on *.* to 'replica'@'%'; flush privileges;
-
查看用户信息,查询结果中将包含
replica
用户SELECT User, Host FROM mysql.user;
查看主节点的binlog信息
-
执行如下SQL,查看主节点的binlog信息。主要是获取如下两个坐标,后续设置slave节点时需要使用
mysql> SHOW BINARY LOG STATUS\G; *************************** 1. row ***************************File: master-bin.000003 # 坐标1: 日志文件Position: 1311 # 坐标2: 日志文件位置Binlog_Do_DB:Binlog_Ignore_DB: Executed_Gtid_Set: 8b52fb06-ca82-11ef-a11f-04d82f6466d3:1-5 1 row in set (0.00 sec)
slave上的操作
创建主从复制用户
-
(可跳过)为root用户设置密码
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '123456'; flush privileges;
-
创建主从复制用户
CREATE USER 'replica'@'%' IDENTIFIED WITH 'mysql_native_password' BY '123456'; grant replication slave on *.* to 'replica'@'%'; FLUSH PRIVILEGES;
-
查看用户信息,查询结果中将包含
replica
用户(截图省略)SELECT User, Host FROM mysql.user;
设置主机节点信息
-
执行如下SQL,设置主节点信息
CHANGE REPLICATION SOURCE TOSOURCE_HOST='127.0.0.1',SOURCE_PORT = 3306,SOURCE_USER='replica',SOURCE_PASSWORD='123456', -- 填写master节点的基本信息SOURCE_LOG_FILE='master-bin.000003',SOURCE_LOG_POS=1311; -- 使用之前SHOW BINARY LOG STATUS展示的坐标信息
开启主从复制
-
开启主动复制
start replica;
-
查看主动复制开启是否成功
mysql> show replica status\G; *************************** 1. row ***************************Replica_IO_State: Waiting for source to send eventSource_Host: 127.0.0.1Source_User: replicaSource_Port: 3306Connect_Retry: 60Source_Log_File: master-bin.000003Read_Source_Log_Pos: 1311 // 以上显示的信息, 能跟master节点对上Relay_Log_File: F177XMTP97-relay-bin.000002... // 其他信息省略Last_Errno: 0Last_Error: // 这里未显示错误, 代表主从复制开启成功... // 其他信息省略
验证主从复制
- 上面只是从基本信息看,主从复制开启成功了,还需要具体地验证才靠谱
master上的操作
-
在master节点上新建测试库
create database test;
-
并创建一个测试表
use test; create table t(id int primary key ,name varchar(10)); insert into t(id, name) values(1,'hello');
-
查询新插入的数据
slave上的操作
-
登录slave节点,查看刚在master创建的库表
show database; # 查询测试库中的数据 use test; select * from t;
-
能查询到,表示主从复制工作正常
-
库表信息都没有任何问题,主从复制创建成功 😄
一些问题的解决办法
主动复制开启失败
- 虽然通过
show replica status
未看到错误信息,但是验证主从复制时,发现slave节点上未同步master上的库 - 可能是跟笔者一样,中途为了重新设置master的信息,关闭了replica
-
中途想通过
CHANGE REPLICATION SOURCE TO
重新设置master的信息 -
MySQL报错,提示
ERROR 3021 (HY000): This operation cannot be performed with a running replica io thread; run STOP REPLICA IO_THREAD FOR CHANNEL '' first.
-
执行
STOP REPLICA IO_THREAD FOR CHANNEL '';
停止了replica
-
- 此时,可以通过
start replica;
重新开启主从复制。如无意外,再次查询slave节点,能查到来自master节点的库表信息 - 如果还不行,可以试试参考博客。注意:需要将博客中的
start slave
改成start replica
:mysql8.0的主从集群架构搭建教程,主从复制原理详解
主从节点的关闭
- 如果遇到初始化失败,或想关闭服务了,最好通过如下方式完整的关闭MySQL服务
ps -ef | grep "mysqld" | grep "3306" | grep -v grep | awk '{print $2}' | xargs kill -9 # 查看对应端口是否存在tcp监听 lsof -i:3306 kill -9 $PID
后记
- 超级感谢博客,里面使用的各种命令都符合
MySQL 8.4.3
的规则:mysql 8.0 搭建主从集群注意事项 - 其次,感谢博客给的主从复制未开启的解决思路:mysql8.0的主从集群架构搭建教程,主从复制原理详解
相关文章:
Mac M2基于MySQL 8.4.3搭建(伪)主从集群
前置准备工作 安装MySQL 8.4.3 参考博主之前的文档,在本地Mac安装好MySQL:Mac M2 Pro安装MySQL 8.4.3安装目录:/usr/local/mysql,安装好的MySQL都处于运行状态,需要先停止MySQL服务最快的方式:系统设置 …...
Visual Point Cloud Forecasting enables Scalable Autonomous Driving——点云论文阅读(12)
此内容是论文总结,重点看思路!! 文章概述 这篇文章介绍了一个名为 ViDAR 的视觉点云预测框架,它通过预测历史视觉输入生成未来点云,作为自动驾驶的预训练任务。ViDAR 集成了语义、三维几何和时间动态信息,有效提升了感知、预测和规划等自动驾驶核心任务的性能。实验表明…...
handpose x plus 数据解析 >> DataBall
DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” ---------------------------- 样品数据: 通过加入知识…...
LINUX线程操作
文章目录 线程的定义LINUX中的线程模型一对一模型多对一模型多对多模型 线程实现原理线程的状态新建状态(New)就绪状态(Runnable)运行状态(Running)阻塞状态(Blocked)死亡状态&#…...
每日一学——日志管理工具(ELK Stack)
5.1 ELK Stack 5.1.1 Elasticsearch索引机制 嘿,小伙伴们!今天我们要聊聊ELK Stack——一套由Elasticsearch、Logstash和Kibana组成的强大日志管理工具集。通过这套工具,我们可以轻松地收集、存储、搜索和可视化日志数据。首先,…...
设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口,从而使原本因接口不兼容而无法一起工作的类能够协同工作。这种设计模式在软件开发中非常有用,尤其是在需要集成…...
【Leetcode】732. 我的日程安排表 III
文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 当 k k k 个日程存在一些非空交集时(即, k k k 个日程包含了一些相同时间),就会产生 k k k 次预订。 给你一些日程安排 [startTime, endTime…...
Flutter Android修改应用名称、应用图片、应用启动画面
修改应用名称 打开Android Studio,打开对应项目的android文件。 选择app下面的manifests->AndroidManifest.xml文件,将android:label"bluetoothdemo2"中的bluetoothdemo2改成自己想要的名称。重新启动或者重新打包,应用的名称…...
RocketMQ消费者如何消费消息以及ack
1.前言 此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂 这篇文章紧挨着上一篇博客来进行编写,有些不清楚的可以看下上一篇博客: https://blog.csdn.net/u013127325/article/details/144934073 2.broker是如何…...
华为消费级QLC SSD来了
近日,有关消息显示,华为的消费级SSD产品线,eKitStor Xtreme 200E系列,在韩国一家在线零售商处首次公开销售,引起了业界的广泛关注。 尽管华为已经涉足服务器级别的SSD制造多年,但直到今年6月才正式推出面向…...
Conda 安装 Jupyter Notebook
文章目录 1. 安装 Conda下载与安装步骤: 2. 创建虚拟环境3. 安装 Jupyter Notebook4. 启动 Jupyter Notebook5. 安装扩展功能(可选)6. 更新与维护7. 总结 Jupyter Notebook 是一款非常流行的交互式开发工具,尤其适合数据科学、机器…...
高等数学学习笔记 ☞ 极限的运算法则与存在准则
1. 极限的运算法则 (1)有限个无穷小的和是无穷小。 (2)有限个无穷小的乘积是无穷小。 备注: ①:无限个无穷小的和不一定是无穷小,反例如下…...
【开源】创建自动签到系统—QD框架
1. 介绍 QD是一个 基于 HAR 编辑器和 Tornado 服务端的 HTTP 定时任务自动执行 Web 框架。 主要通过抓包获取到HAR来制作任务模板,从而实现异步响应和发起HTTP请求 2. 需要环境 2.1 硬件需求 CPU:至少1核 内存:推荐 ≥ 1G 硬盘:推…...
k8s集群,CRI-Docker部署条件及方法
CRI-Docker部署条件及方法 文章目录 CRI-Docker部署条件及方法CRI-Docker使用条件安装 cri-docker 的步骤: CRI-Docker使用条件 在 Kubernetes 1.20 及以上版本,kubeadm 默认使用 containerd 作为容器运行时(Container Runtime Interface, C…...
STLG_01_09_程序设计C语言 - 指针
C语言中的指针是一个非常重要的概念,它允许程序直接访问和操作内存地址。理解指针对于掌握C语言编程至关重要。 1. 指针的基本概念 指针:指针是一个变量,它存储的是另一个变量的内存地址。指针变量:指针变量专门用来存储内存地址…...
Seaborn的分类柱状图sns.barplot()
Seaborn的分类柱状图sns.barplot 一、sns.barplot()参数详解二、代码实现一、sns.barplot()参数详解 sns.barplot 是 Seaborn 库中用于绘制分类柱状图(bar chart)的函数。Seaborn 是一个基于 Matplotlib 的数据可视化库,它提供了更高级别的接口来绘制统计图形,并且有更…...
SpringBoot入门之创建一个Hello World项目
文章目录 一、创建一个SpringBoot项目二、配置pom.xml文件三、下载Maven依赖四、创建一个Controller类:com.devops.controller.HelloController五、创建一个引导类:com.devops.HelloApplication六、启动项目七、访问8080八、完整项目结构九、参考视频 一…...
MAC系统QT Creator的快捷键
安装好QT Creator后使用了一段时间,真是越用越难受,只想说🗑️。。。 找一圈qt creator的快捷键 0. 快捷键界面 这里的搜索真的是…无语,不考虑是人查找吗?? 1. 代码前后浏览 2. 移动代码 3. 半自动导入…...
qml Rectangle详解
1、概述 Rectangle是Qt Quick中的一个基础图形元素,用于在QML界面上绘制一个可带边框和可填充的矩形区域。它继承自Item类,因此具有Item的所有属性和功能,如位置、尺寸、变换等。通过Rectangle,可以创建各种矩形形状,…...
C语言中关于数据类型带来的陷阱
前言 笔者在阅读《深入理解计算机系统》时,理解了为何C语言被称为不安全语言,C语言除了指针非常灵活可能会导致大量漏洞之外,C语言的无符号数据也可能带来致命性危害。 扩展一个数据的表示 将一个无符号数转换为更大的数据类型,…...
设计心得——流程图和数据流图绘制
一、流程图和数据流图 在软件开发中,画流程图和数据流图可以说是几乎每个人都会遇到。 1、数据流(程)图 Data Flow Diagram,DFG。它可以称为数据流图或数据流程图。其主要用来描述系统中数据流程的一种图形工具,可以将…...
【AimRT】AimRT Hello World
目录 一、工程结构二、源码说明/CMakeLists.txt/cmake/GetAimRT.cmake/src/CMakeLists.txt/src/module/helloworld_module/CMakeLists.txt/src/app/helloworld_app/CMakeLists.txt/src/install/cfg/helloworld_cfg.yaml/src/module/helloworld_module/helloworld_module.h/src/…...
在Typora中实现自动编号
文章目录 在Typora中实现自动编号1. 引言2. 准备工作3. 自动编号的实现3.1 文章大纲自动编号3.2 主题目录(TOC)自动编号3.3 文章内容自动编号3.4 完整代码 4. 应用自定义CSS5. 结论 在Typora中实现自动编号 1. 引言 Typora是一款非常流行的Markdown编辑…...
Vue2/Vue3使用DataV
Vue2 注意vue2与3安装DataV命令命令是不同的Vue3 DataV - Vue3 官网地址 注意vue2与3安装DataV命令命令是不同的 vue3vite 与 Vue3webpack 对应安装也不同vue3vite npm install kjgl77/datav-vue3全局引入 // main.ts中全局引入 import { createApp } from vue import Da…...
Docker 环境中搭建 Redis 哨兵模式集群的步骤与问题解决
在 Docker 环境中搭建 Redis 哨兵模式集群的步骤与问题解决 在 Redis 高可用架构中,哨兵模式(Sentinel)是确保 Redis 集群在出现故障时自动切换主节点的一种机制。通过使用 Redis 哨兵,我们可以实现 Redis 集群的监控、故障检测和…...
数据库设计
数据库设计全攻略:从理论到实践 在当今数字化驱动的世界里,数据已然成为企业和组织最为宝贵的资产之一。而数据库,作为数据的“栖息地”,其设计的优劣直接关系到整个信息系统的性能、可维护性以及能否高效满足业务需求。一个精心构思的数据库设计方案,就如同为一座高楼打…...
三甲医院等级评审八维数据分析应用(一)--组织、制度、管理可视化篇
一、引言 1.1 研究背景与意义 在当今医疗领域,三甲医院作为医疗服务的核心载体,肩负着保障民众健康、推动医学进步的重任。随着信息技术的飞速发展,数据已成为医院运营管理、医疗质量提升以及科学决策的关键要素。三甲医院等级评审作为衡量医院综合实力与服务水平的重要标…...
【2025软考高级架构师】案例题重点知识——第一部分
1.架构风格相关问题 什么是架构风格? 软件架构风格类似于建筑风格,从相同类型的软件系统中抽取其架构的共性,是一种惯用模式,反映了众多系统共有的结构和语义 (1)软件架构为软件系统提供了一个结构、行为和属性的高级抽象。 (2)软件架构风格是特定应用领域的惯用模式,架…...
Science Robotics让软机器人“活”得更久的3D打印!
软机器人硬件在医疗、探索无结构环境等领域有广泛应用,但其生命周期有限,导致资源浪费和可持续性差。软机器人结合软硬组件,复杂组装和拆卸流程使其难以维修和升级。因此,如何延长软机器人的生命周期并提高其可持续性成为亟待解决…...
【JVM】总结篇-运行时内存篇
文章目录 JVM内存模型(内存结构)程序计数器 pc虚拟机栈本地方法栈 native堆堆空间堆中一些JVM参数堆中垃圾回收过程MinorGC MajorGC FullGC年轻代GC(Minor GC)触发机制:老年代GC(Major GC/Full GC)触发机制:…...
【2025最新计算机毕业设计】基于SpringBoot+Vue智慧养老医护系统(高质量源码,提供文档,免费部署到本地)【提供源码+答辩PPT+文档+项目部署】
作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...
【数据仓库】hive on Tez配置
hive on Tez 搭建 前提是hive4.0hadoop3.2.2数仓已搭建完成,现在只是更换其执行引擎 为Tez。搭建可参考【数据仓库】hive hadoop数仓搭建实践文章。 Tez 下载 下载地址 https://archive.apache.org/dist/tez/ 官网地址 https://tez.apache.org/releases/apac…...
基于HTML和CSS的旅游小程序
一、技术基础 HTML(HyperText Markup Language):超文本标记语言,用于定义网页的内容和结构。在旅游小程序中,HTML用于搭建页面的基本框架,包括标题、段落、图片、链接等元素,以及用于交互的表单…...
CDP集成Hudi实战-文件存储布局实况讲解
[〇]关于本文 本文我们参考一张在hdfs中的hud表讲解一下hudi表的文件存储布局 [一]时间线文件解析 目录结构中列出的文件和子目录如下: 1-文件类型解析 时间线目录中的文件主要有以下几种类型: <commit_id>.deltacommit.inflight 表示一项事务&…...
22408操作系统期末速成/复习(考研0基础上手)
第一部分:计算题: 考察范围:(标红的是重点考) 第一章:CPU利用率: 第二章: 进程调度算法(需要注意不同调度算法的优先级和题目中给出的是否可以抢占【分为可抢占和不可抢占ÿ…...
Qt的信号与槽
文章目录 信号与槽机制信号与槽的定义 Qt使用信号与槽机制进行对象间的通信。当某个对象的状态发生变化时,该对象会触发一个信号。 该信号和另外一些对象的槽函数绑定,信号的触发将导致这些槽函数的执行,以处理第一个对象状态的变化。触发信号…...
牛客网刷题 ——C语言初阶——JZ15 二进制中1的个数
1.题目描述 题目OJ链接 描述 输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。 2.思路 求2进制中1的个数,可以转换为求每一位,1的个数,1&1还是1 所以判断如果该数值&1为真,我们就co…...
【游戏设计原理】47 - 超游戏思维
对于这条原理,我首先想到的是开放世界,或者探索性游戏,这是最能包容各类玩家的游戏类型。这类游戏定义了基本规则,玩家的可操作性很强。就像上图里的沙池一样,里面有滑梯,是规则性比较明确的,而…...
Elasticsearch Serverless中的数据流自动分片深度解析
Elasticsearch Serverless中的数据流自动分片深度解析 一、Elasticsearch Serverless概述 1. 什么是Elasticsearch Serverless Elasticsearch Serverless是一种云端全托管的Elasticsearch服务,它基于云原生Serverless技术架构,提供自动弹性和完全免运…...
Elasticsearch JavaRestClient版
文章目录 初始化RestHighLeveClient(必要条件)索引库操作1.创建索引库(4步)2.删除索引库(3步)3.判断索引库是否存在(3步)4.总结:四步走 文档操作1.创建文档(4…...
通过爬虫方式实现视频号助手发布视频
1、将真实的cookie贴到解压后目录中cookie.txt文件里,修改python代码里的user_agent和video_path, cover_path等变量的值,最后运行python脚本即可; 2、运行之前根据import提示安装一些常见依赖,比如requests等; 3、2025年1月份最新版; 代码如下: import json import…...
如何在VMware ESXi和Workstation中打开VMDK文件?
VMware 中的 VMDK 是什么? 在 VMware 中,VMDK 是虚拟磁盘文件的格式,全称是 Virtual Machine Disk。VMDK 文件用于存储虚拟机的硬盘内容,包括操作系统、应用程序、文件等。它相当于虚拟机的硬盘驱动器,可以模拟出各种…...
【计算机视觉技术 - 人脸生成】2.GAN网络的构建和训练
GAN 是一种常用的优秀的图像生成模型。我们使用了支持条件生成的 cGAN。下面介绍简单 cGAN 模型的构建以及训练过程。 2.1 在 model 文件夹中新建 nets.py 文件 import torch import torch.nn as nn# 生成器类 class Generator(nn.Module):def __init__(self, nz100, nc3, n…...
「Mac畅玩鸿蒙与硬件54」UI互动应用篇31 - 滑动解锁屏幕功能
本篇教程将实现滑动解锁屏幕功能,通过 Slider 组件实现滑动操作,学习事件监听、状态更新和交互逻辑的实现方法。 关键词 滑动解锁UI交互状态管理动态更新事件监听 一、功能说明 滑动解锁屏幕功能包含以下功能: 滑动解锁区域:用…...
JVM学习指南(9)-JVM运行时数据区
JVM学习指南(9)-JVM运行时数据区 引言 Java虚拟机(JVM)是Java程序运行的核心,它为Java程序提供了一个与平台无关的执行环境。JVM的重要性不仅在于它实现了Java的跨平台特性,还在于它对程序执行过程中内存的管理。JVM运行时数据区是程序执行过程中存储数据的关键区域,理解…...
前端实现大文件上传(文件分片、文件hash、并发上传、断点续传、进度监控和错误处理,含nodejs)
大文件分片上传是前端一种常见的技术,用于提高大文件上传的效率和可靠性。主要原理和步骤如下 文件分片 确定分片大小:确定合适的分片大小。通常分片大小在 1MB 到 5MB 之间使用 Blob.slice 方法:将文件分割成多个分片。每个分片可以使用 Bl…...
什么是 C++ 的序列化?
什么是 C 的序列化? 序列化(Serialization)是指将对象的状态转换为可以存储或传输的格式的过程。它使得对象能够以二进制或文本的形式被保存到文件中,或者通过网络发送到远程计算机上,稍后可以重新构造出来࿰…...
047_小驰私房菜_Qcom 8系列,Jpeg GPU 旋转
【问题背景】 横屏模式下,发现有些三方app拍照旋转了90度。 【修改策略】 adb shell setprop endor.debug.camera.overrideGPURotationUsecase 1 或者在/vendor/etc/camera/camxoverridesettings.txt 里面添加如下内容 overrideGPURotationUsecase1 【解释】 Ga…...
【C++】2039:【例5.6】冒泡排序
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯我的初步实现我的代码实现问题分析 💯老师的实现方式老师代码的特点分析老师代码的执行过程 💯我的代码与老师代码的对比优点…...
【Java回顾】Day4 反射机制
反射机制 之前学过一部分,笔记在20250103Java包_网络编程.md里,这里在之前的笔记的基础上做一些补充。 反射:得到class对象后反向获取对象的各种信息。 包 Field 类或接口中的字段(成员变量),动态访问和修改类的字段 模板 获取Class 对象 …...