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

centos7 docker Mysql8 搭建主从

Mysql8 搭建主从

  • docker的安装
  • docker-compose的安装
  • 安装mysql
  • 配置主从
    • 在master配置
    • 在slave中配置
    • 在master中创建同步用户
    • 在slave中连接
  • 测试连接
    • 测试配置
    • 测试数据同步
    • 遇到的问题
      • id重复错误
      • 执行事务出错,跳过错误
      • my.cnf 不删除多余配置的错误
      • 可能用到的命令

docker的安装

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE
和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使
用。
本文介绍 Docker CE 的安装使用。
移除旧的版本:

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistentdata lvm2

添加软件源信息:

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

更新 yum 缓存:

# centos 7
sudo yum makecache fast
# CentOS 8没有fast这个命令
sudo yum makecache

安装 Docker-ce:

sudo yum -y install docker-ce

查看已安装docker版本

docker version

启动 Docker 后台服务

sudo systemctl start docker

开机启动

sudo systemctl enable docker

镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加
速器来解决。
可以使用阿里云的docker镜像地址:https://7qyk8phi.mirror.aliyuncs.co
m
新版的 Docker 使用 /etc/docker/daemon.json (Linux,没有请新
建)。
请在该配置文件中加入:
(没有该文件的话,请先建一个)

{
"registry-mirrors":
["https://7qyk8phi.mirror.aliyuncs.com"]
}

重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

检查加速器是否生效
配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是
否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说
明配置成功。

Registry Mirrors:

https://7qyk8phi.mirror.aliyuncs.com/

docker-compose的安装

#运行此命令以下载 Docker Compose 的当前稳定版本
sudo curl -L
"https://github.com/docker/compose/releases/download/1.29.
2/docker-compose-$(uname -s)-$(uname -m)" -o
/usr/local/bin/docker-compose
#对二进制文件应用可执行权限
sudo chmod +x /usr/local/bin/docker-compose
#测试安装
docker-compose --version
#若有docker-compose version 1.29.2, build 5becea4c,则安装成

安装mysql

在你的home路径下创建一个文件 vim docker-compose.yml 将下列内容复制到该文件中保存(改成自己的密码和容器名), 然后执行docker-compose up -d 命令 执行 会按照docker-compose.yml文件中的配置进行安装,会自动创建好docker 容器 ,安装完成后 使用 docker ps -a 命令可以查看

vim docker-compose.yml
docker-compose up -d
docker ps -a

在这里插入图片描述

version: "3.5"services:saber-mysql:image: mysql:8.0container_name: 容器名restart: alwaysenvironment:- MYSQL_ROOT_PASSWORD= 密码ports:- 13306:3306volumes:- /home/mysql/data:/var/lib/mysql- /home/mysql/conf.d:/etc/mysql/conf.dsaber-redis:image: redis:7.0.11container_name: 容器名restart: alwaysvolumes:- /home/redis/data:/data- /home/redis/config/:/usr/local/etc/redis/command: redis-server /usr/local/etc/redis/redis.confports:- 16379:6379

配置主从

在两台服务器上除以上的操作后,可以开始配置主从了,首先测试两台服务器是否联通 通过ping命令进行测试

ping  另一台服务器的IP地址  如 :ping  121.227.45.33

ctrl + c 结束 查看结果

在master配置

在msyql容器成功运行后,可以通过 docker exec -it mysql(容器名)bash 进入容器

docker exec -it mysql(容器名)bash

然后登录到mysql

 mysql  -uroot -p密码

正常后退出容器 exit 退出mysql ctrl + d 可以退出容器

修改master配置文件

在这里插入图片描述
①可以看到mysql的配置映射到了这个路径下,但是不是直接修改这个文件,而是在这个目录下新建配置文件进行配置 这里是从 /etc/my.cnf (使用find / -name my.cnf 找一下 如果没有这个文件,通常是这个)目录下复制了一份配置文件过来cp /etc/my.cnf /home/mysql/conf.d/my.cnf

find / -name my.cnf
cp /etc/my.cnf  /home/mysql/conf.d/my.cnf`

②但是启动msyql的时候会报错,需要删除掉一些原本不需要的配置

vim my.cnf 

③在[mysql]下添加以下配置后,重启docker systemctl restart docker 或 mysql容器 docker restart mysql(容器名)使用命令查看配置是否生效

systemctl restart dockerdocker restart mysql(容器名)
server_id=1
log-bin=mysql-bin
read-only=0
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
binlog_format=STATEMENT
#binlog_format=ROW
#binlog_format=MIXED

其中 server-id 是 MySQL 服务器的唯一标识符(在主从复制中必须唯一),
log-bin 是二进制日志文件的名称前缀(用于记录所有更改),
binlog-do-db 是指定需要复制的数据库名称。

在slave中配置

同msater一样在[mysql]中配置即可,重启后查看是否生效

server_id=2
log-bin=mysql-bin
read-only=1
log-slave-updates=1
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

其中 server-id 是 MySQL 服务器的唯一标识符(在主从复制中必须唯一),
relay-log 是中继日志文件的名称前缀(用于存储从主服务器接收到的二进制日志信息),
log-slave-updates 是指定从服务器记录自己的二进制日志以便后续其他从服务器复制,
read-only 是将从服务器设置为只读模式(以避免在从服务器上进行写操作)。

配置主要是忽略部分系统表的同步, 以及从库开启只读模式.

注: 从库的只读模式只对非 SUPER 用户起作用, 同时不影响主从复制的写功能.

SHOW VARIABLES LIKE 'server_id'; 

命令检查从服务器的 server_id 参数是否已设置为不同于主服务器的值。

在master中创建同步用户

上述步骤测试无问题后,可以进行同步用户的创建和配置了

登录mysql执行

CREATE USER 'sxxx'@'%' IDENTIFIED BY '你的密码';GRANT REPLICATION SLAVE ON *.* TO 'sxxx'@'%';GRANT * ON *.* TO 'sxxx'@'%';FLUSH PRIVILEGES;

在slave中连接

登录mysql,根据master的情况填写一下命令中的参数,在master中的mysql中执行命令 show master status ;

show master status;

CHANGE MASTER TO MASTER_HOST='master服务器地址', MASTER_USER='同步用户名', MASTER_PASSWORD='密码', MASTER_PORT=13306(端口), MASTER_LOG_FILE='mysql-bin.000006(看情况)', MASTER_LOG_POS= 看情况;

示例

CHANGE MASTER TO MASTER_HOST='121.228.45.51',MASTER_PORT=13306, MASTER_USER='sxxxx', MASTER_PASSWORD='124444', MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=156;

然后执行命令 ,开启从库

START SLAVE;

使用以下命令检查从服务器当前的复制状态:

测试连接

测试配置

SHOW SLAVE STATUS\G

如果输出中的 Slave_IO_RunningSlave_SQL_Running 都为 Yes,那么说明主从复制已经成功搭建起来了。

如果发现 status 中有任何错误, 则停止从库同步:

stop slave;

排查完原因后, 可能需要重置同步:

reset slave;

重新 start slave 后当看到如下显示说明成功了:

如果: Seconds_Behind_Master 字段为 0,这表示从服务器与主服务器之间的数据同步是实时的,即从服务器已经追上了主服务器。

测试数据同步

Slave_IO_RunningSlave_SQL_Running 都为 Yes,然后在master中创建库和表,以及添加数据,在slave中会自动同步

遇到的问题

目前使用docker和docker-compose 安装好了 msysql8 在两台服务器 ,但是在配置主从的时候 不知道在哪里修改配置文件 使slave(从库)能够从主库中完成同步
目前尝试了docker exec 进入mysql容器内部 临时修改服务id 能够在连接后成功同步连接后的建库和建表操作
但是由于是临时配置的 不太稳定 而且重启后就失效了 不清楚在哪里进行配置 在/etc/my.cnf中配置 不起作用 猜测应该是不应该在这里配置 根据docker-compose.yml中的数据卷映射 到/home/mysql/conf.d 文件 发现是空的 但是/home/mysql/data中的数据映射成功了 目前不清楚在哪里进行配置
在这里插入图片描述

还有 好像只能同步连接后的建库建表操作 连接之前的操作和数据怎么同步(未解决,以下是说明)

在启动主从复制后,如果你没有手动创建数据库和表,那么主服务器上新创建的数据库和表会自动被复制到从服务器上。但是,如果你已经手动创建了数据库或表,那么需要手动将这些数据库和表导入到从服务器上。

需要注意的是,在从服务器上执行 SHOW DATABASES;
命令时,可能不会立即看到主服务器上新创建的数据库。这是因为默认情况下,从服务器会缓存主服务器的 binlog 事件,直到执行 START
SLAVE; 命令时才开始读取并应用这些事件。如果你想在从服务器上立即看到新创建的数据库,可以尝试执行 STOP SLAVE; 和
START SLAVE; 命令以重新启动从服务器的复制进程。

id重复错误

Slave_IO_Running 的状态显示为 “No”,并且在 Last_IO_Error 中出现了以下错误提示:

Fatal error: The slave I/O thread stops because master and slave haveequal MySQL server ids; these ids must be different for replication towork (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual beforeusing it).

这个错误提示的意思是从服务器和主服务器使用了相同的 MySQL 服务器 ID,导致无法进行数据复制。为了解决这个问题,需要在从服务器上修改 MySQL 的服务器 ID。

临时设置id

SET GLOBAL server_id = 2;  临时设置id

检查从服务器的 server_id

SHOW VARIABLES LIKE 'server_id';

执行事务出错,跳过错误

从服务器的主从复制状态显示为 “Slave_IO_Running: Yes”,但是 “Slave_SQL_Running: No”,并且在 Last_SQL_Error 中出现了以下错误提示:

Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ‘ANONYMOUS’ at master log binlog.0

这个错误提示表明在执行事务时出现了错误,导致了主从复制的停止。为了解决这个问题,你可以尝试以下步骤:

STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
START SLAVE;

这里的 1 是指跳过一个错误的 SQL 语句,如果有多个错误,可以多次执行 SET GLOBAL SQL_SLAVE_SKIP_COUNTER 的命令。

重新配置从服务器的主从复制参数,并开始复制进程

CHANGE MASTER TO MASTER_HOST='', MASTER_USER='', MASTER_PASSWORD='your_password', MASTER_PORT=13306, MASTER_LOG_FILE='binlog.000006', MASTER_LOG_POS=771;
START SLAVE;

永久配置跳过错误

在这里插入图片描述

将 <错误代码> 替换为您希望跳过的特定错误代码。如果要跳过多个错误代码,可以使用英文逗号分隔它们,例如:

slave_skip_errors = 1062,1050

my.cnf 不删除多余配置的错误

Can’t read dir of ‘/etc/my.cnf.d’ (OS errno 2 - No such file or directory)mysql: [ERROR] Stopped processing the ‘includedir’ directive in file /etc/mysql/conf.d/my.cnf at line 28.mysql: [ERROR] Stopped processing the ‘includedir’ directive in file /etc/mysql/my.cnf at line 29.mysql: [Warning]Using a password on the command line interface can be insecure.ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

有几个问题需要解决:

/etc/my.cnf.d 目录不存在:该错误提示表明 /etc/my.cnf.d 目录不存在。在 CentOS 7的默认安装中,MySQL 的配置文件目录通常是 /etc/mysql/conf.d 而不是 /etc/my.cnf.d。请确保您在命令行或配置文件中正确指定了正确的路径。

includedir 指令的处理停止:该错误提示表明 MySQL 在处理 /etc/mysql/conf.d/my.cnf 和
/etc/mysql/my.cnf 文件时遇到了问题。可能是由于文件中的某些配置错误导致的。请检查这两个文件的第 28 行和第 29行的内容,并确保没有语法错误或其他问题。

无法通过 socket 连接到本地 MySQL 服务器:该错误提示表示无法通过 /var/run/mysqld/mysqld.sock文件的 socket 连接到本地的 MySQL 服务器。这可能是由于 MySQL服务器未启动或配置错误导致的。您可以尝试执行以下步骤来解决此问题:

检查 MySQL 服务器是否已正确启动。您可以使用 systemctl status mysqld 命令来检查 MySQL 服务器的状态。
如果 MySQL 服务器未启动,请使用 systemctl start mysqld 命令启动它。 如果 MySQL服务器已启动但仍无法连接,请检查 /etc/my.cnf 或 /etc/mysql/my.cnf 文件中的 socket配置项,并确保它与实际的 socket 文件路径匹配。
最后,请确保您在命令行中使用密码进行连接时谨慎操作,因为这可能存在安全风险。建议使用安全的方式连接到 MySQL 服务器,如使用配置文件或环境变量来提供密码。

用户认证方式出错

error connecting to master ‘sxy@121.229.41.41:13306’ - retry-time: 60retries: 1 message: Authentication plugin ‘caching_sha2_password’ reported error: Authenticat

在这里插入图片描述

ALTER USER 'user'@'ip或%' IDENTIFIED WITH mysql_native_password BY 'your_password';

centos7 服务器改名

要在 CentOS 7 服务器上更改主机名,可以按照以下步骤进行操作:

1.登录到 CentOS 7 服务器,以具有管理员权限的用户身份(例如 root 用户)。

2.打开终端,并执行以下命令来编辑 /etc/hostname 文件:

vim /etc/hostname

3.在编辑器中,将当前的主机名替换为新的主机名,并保存文件。

4.重启服务器,以使主机名更改生效:

reboot

5.在服务器重新启动后,新的主机名将生效。

可能用到的命令

删除容器docker rm -f 容器名或id删除镜像 docker rmi  镜像名和id查看镜像信息docker images mysql赋予新用户全部权限示例:GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';查看当前MySQL用户及其权限:SELECT User, Host, authentication_string FROM mysql.user;确认新用户具有创建数据库的权限。如果该用户没有创建数据库的权限,则可以使用以下命令授权:GRANT CREATE ON *.* TO 'new_user'@'localhost';
FLUSH PRIVILEGES;如果在远程主机上也需要授予 new_user 用户创建数据库的权限,则可以使用以下命令:GRANT CREATE ON *.* TO 'new_user'@'remote_host';
FLUSH PRIVILEGES;

备注: 部分问题参考https://www.jianshu.com/p/4d09ee0e973f解决

相关文章:

centos7 docker Mysql8 搭建主从

Mysql8 搭建主从 docker的安装docker-compose的安装安装mysql配置主从在master配置在slave中配置在master中创建同步用户在slave中连接 测试连接测试配置测试数据同步遇到的问题id重复错误执行事务出错&#xff0c;跳过错误my.cnf 不删除多余配置的错误可能用到的命令 docker的…...

CSS中 设置文字下划线 的几种方法

在网页设计和开发中&#xff0c;我们经常需要对文字进行样式设置&#xff0c;包括字体,颜色&#xff0c;大小等&#xff0c;其中&#xff0c;设置文字下划线是一种常见需求 一 、CSS种使用 text-decoration 属性来设置文字的装饰效果&#xff0c;包括下划线。 常用的取值&…...

Docker构建自定义镜像

创建一个docker-demo的文件夹,放入需要构建的文件 主要是配置Dockerfile文件 第一种配置方法 # 指定基础镜像 FROM ubuntu:16.04 # 配置环境变量&#xff0c;JDK的安装目录 ENV JAVA_DIR/usr/local# 拷贝jdk和java项目的包 COPY ./jdk8.tar.gz $JAVA_DIR/ COPY ./docker-demo…...

C#生成Token字符串

Token字符串来保证数据安全性&#xff0c;如身份验证、跨域访问等。但是由于Token字符串的长度比较长&#xff0c;可能会占用过多的空间和带宽资源&#xff0c;因此我们需要生成短的Token字符串 方法一&#xff1a;使用Base64编码 Base64编码是一种常用的编码方式&#xff0c…...

文献速递:多模态影像组学文献分享:生成一种多模态人工智能模型以区分甲状腺良性和恶性滤泡性肿瘤:概念验证研究

文献速递&#xff1a;多模态影像组学文献分享&#xff1a;生成一种多模态人工智能模型以区分甲状腺良性和恶性滤泡性肿瘤&#xff1a;概念验证研究 文献速递介绍 近年来&#xff0c;人工智能&#xff08;AI&#xff09;领域日益被探索&#xff0c;作为一种增强传统医学诊断和…...

Docker创建RocketMQ和RocketMQ控制台

安装RocketMQ 安装最新版本的RocketMQ&#xff08;名为RocketMQ&#xff09;在Docker上的过程大致可以分为以下步骤&#xff1a; 1. 准备工作 确保你的系统中已经安装了Docker。可以通过运行 docker --version 来验证Docker是否已安装及其版本信息。 2. 拉取RocketMQ镜像 …...

Python---面向对象其他特性

1、类属性 Python中&#xff0c;属性可以分为实例属性和类属性。 类属性就是 类对象中定义的属性&#xff0c;它被该类的所有实例对象所共有。通常用来记录 与这类相关 的特征&#xff0c;类属性 不会用于记录 具体对象的特征。 在Python中&#xff0c;一切皆对象。类也是一…...

【Ambari】Python调用Rest API 获取YARN HA状态信息并发送钉钉告警

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…...

linux之buildroot(3)配置软件包

Linux之buildroot(3)配置软件包 Author&#xff1a;Onceday Date&#xff1a;2023年11月30日 漫漫长路&#xff0c;才刚刚开始… 全系列文章请查看专栏: buildroot编译框架_Once_day的博客-CSDN博客。 参考文档&#xff1a; Buildroot - Making Embedded Linux Easymdev.t…...

学会用bash在linux写脚本 (一)

本章主要介绍如何使用bash写脚本。 了解通配符 了解变量 了解返回值和数值运算 grep的用法是“grep 关键字 file”&#xff0c;意思是从file中过滤出含有关键字的行。 例如&#xff0c;grep root /var/log/messages&#xff0c;意思是从/var/log/messages 中过滤出含有root …...

Leetcode 2949. Count Beautiful Substrings II

Leetcode 2949. Count Beautiful Substrings II 1. 解题思路2. 代码实现 Leetcode 2949. Count Beautiful Substrings II 1. 解题思路 这一题真的很丢脸&#xff0c;居然没有搞定&#xff0c;是看了大佬们的思路之后才想明白的&#xff0c;就感觉丢脸丢大了…… 这道题讲道…...

【Python系列】Python函数

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

自定义TypeHandler 将mysql返回的逗号分隔的String转换到List

sql执行如下&#xff1a; 这里我定义的接受类&#xff1a; 但是这里报了错JSON parse error: Cannot deserialize value of type java.util.ArrayList<java.lang.String>from Object value (token JsonToken.START_OBJECT); nested exception is com.fasterxml.jackson…...

Spring 高级装配详解

一、环境与profile ​ 在3.1版本中&#xff0c;Spring引入了bean profile的功能。要使用profile&#xff0c;首先要将所有不同的bean定义整理到一个或者多个pofile之中&#xff0c;再将应用部署到每个环境时&#xff0c;确保对应的profile处于激活状态。 在Java配置中&#xf…...

mapbox Marker添加自定义html

思路就是先渲染出空div使用getElementsByClassName找到点&#xff0c;之后使用insertAdjacentHTML(‘beforeend’, div) 加自定义内容。 const el document.createElement(div);// 添加一个标记el.className j_icon;const itemIcon new MapboxGl.Marker({element: el,}).set…...

Linux UUCP命令教程:如何在Linux系统中进行文件复制(附实例详解和注意事项)

Linux UUCP命令介绍 UUCP&#xff08;Unix-to-Unix Copy&#xff09;是一套允许远程执行命令和传输文件的程序。UUCP命令是该套件中的一个程序&#xff0c;它为请求文件复制操作提供了用户界面。UUCP套件还包括uux&#xff08;远程命令执行的用户界面&#xff09;、uucico&…...

【android开发-21】android中调用系统摄像头camera拍照和相册的用法详解

1&#xff0c;调用摄像头 在Android中&#xff0c;调用系统摄像头拍照需要使用Intent来启动Camera应用&#xff0c;并在应用中设置相应的权限。下面是一个简单的例子&#xff1a; // 创建一个Intent对象&#xff0c;指定要执行的动作是拍照 Intent intent new Intent(Medi…...

最新版本——Hadoop3.3.6单机版完全部署指南

大家好&#xff0c;我是独孤风&#xff0c;大数据流动的作者。 本文基于最新的 Hadoop 3.3.6 的版本编写&#xff0c;带大家通过单机版充分了解 Apache Hadoop 的使用。本文更强调实践&#xff0c;实践是大数据学习的重要环节&#xff0c;也能在实践中对该技术有更深的理解&…...

理解自我效能感:你的内在动力来源

1. 自我效能感&#xff1a;开启个人潜能的心理动力 想象一下&#xff0c;面对生活的挑战和机遇时&#xff0c;是什么内在力量驱使你去采取行动&#xff0c;或者让你犹豫不决&#xff1f;这种力量&#xff0c;与我们的心理状态紧密相关&#xff0c;其中一个关键因素就是我们的自…...

Java第二十一章

一.网络程序设计基础 1.网络协议 网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规定)、电气(有效的电平范围)等特征&#xff0c;计算机之间的相互寻址规则&#xff0c;数据发送冲突的解决方式&#xff0c;长数据如何分段传送与接收等内容.就像不同的国家有不同的…...

Redis交互速度慢,CPU占用100%,集群方案,报错等问题

Redis交互速度很慢&#xff0c;达到几十到一百毫秒一次 问题描述&#xff1a; 执行top命令发现redis占用达到100% redis交互速度慢&#xff0c;一次要几十到一百毫秒一次 解决思路 查看redis数据量&#xff0c;比如我这里达到了30万 经过本地测试&#xff0c;redis交互的速…...

wpf 系统在显示器分辨率和缩放设置为非1920*1080和100%时,SelectionChanged事件响应问题分析?

系统在显示器分辨率和缩放设置为1920*1080和100%时&#xff0c;窗口四分格能正常响应SelectionChanged事件&#xff0c;但是当缩放为125%时&#xff0c;或是分辨率大于1920*1080时四分格其中一个格子的下侧和右侧点击不响应&#xff0c;什么原因&#xff1f; 描述的问题可能由以…...

刷题记录--算法--简单

第一题 2582. 递枕头 已解答 简单 相关标签 相关企业 提示 n 个人站成一排&#xff0c;按从 1 到 n 编号。 最初&#xff0c;排在队首的第一个人拿着一个枕头。每秒钟&#xff0c;拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾&#xff0c;传递…...

条码生成器与Zint使用

文章目录 目的条形码zint支持条形码种类下载编译qt pro配置code保存条形码目的 1: 了解条形码数据理论知识 2: 了解zint第三方库相关, 如何编译引用到项目中 条形码 条形码(Barcode)一维码 和二维码(QR code)都是用于存储信息的图形化表示方式,通常应用于商品标识、库…...

C#winform上下班打卡系统Demo

C# winform上下班打卡系统Demo 系统效果如图所示 7个label控件(lblUsername、lblLoggedInEmployeeId、lab_IP、lblCheckOutTime、lblCheckInTime、lab_starttime、lab_endtime)、3个按钮、1个dataGridView控件、2个groupBox控件 C#代码实现 using System; using System.Dat…...

P1 Qt的认识及环境配置

目录 前言 01 下载Qt Creator windows下载安装包拷贝到Linux Linux直接下载 02 Linux 安装Qt 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类…...

单元测试Nunit的几种断言

Nunit提供了一些辅助函数用于确定好某个被测试函数是否正常工作。通常把这些函数称为断言 断言是单元测试最基本的组成部分。因此&#xff0c;NUnit程序库以Assert类的静态方法的形式提供了不同形式的多种断言 1. Assert.AreEqual&#xff1a;比较两个值是否相等。用于比较数…...

前端中的响应式布局与各个端适配

什么是响应式布局&#xff1f; 响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。在移动互联网高度发达的今天&#xff0c;我们在桌面浏览器上开发的网页已经无法满足在移动设备上查看的需求。传统的开发方式是PC端开发一套页面&#xff0c;手机端再开发一套页面。但是…...

2023年5个自动化EDA库推荐

EDA或探索性数据分析是一项耗时的工作&#xff0c;但是由于EDA是不可避免的&#xff0c;所以Python出现了很多自动化库来减少执行分析所需的时间。EDA的主要目标不是制作花哨的图形或创建彩色的图形&#xff0c;而是获得对数据集的理解&#xff0c;并获得对变量之间的分布和相关…...

7-1 查找书籍

给定n本书的名称和定价&#xff0c;本题要求编写程序&#xff0c;查找并输出其中定价最高和最低的书的名称和定价。 输入格式: 输入第一行给出正整数n&#xff08;<10&#xff09;&#xff0c;随后给出n本书的信息。每本书在一行中给出书名&#xff0c;即长度不超过30的字…...

【无线网络技术】——无线广域网(学习笔记)

&#x1f4d6; 前言&#xff1a;无线广域网(WWAN)是指覆盖全国或全球范围内的无线网络&#xff0c;提供更大范围内的无线接入&#xff0c;与无线个域网、无线局域网和无线城域网相比&#xff0c;它更加强调的是快速移动性。典型的无线广域网&#xff1a;蜂窝移动通信系统和卫星…...

【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

项目笔记为项目总结笔记,若有错误欢迎指出哟~ 【项目专栏】 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、sp…...

NGINX相关配置

全局配置 NGINX配置信息 nginx 官方帮助文档&#xff1a;http://nginx.org/en/docs/Nginx的配置文件的组成部分&#xff1a; 主配置文件&#xff1a;/conf/nginx.conf(/nginx/conf/nginx.conf) 子配置文件: include conf.d/*.conf#事件驱动相关的配置 同步 event { worker_…...

如何将idea中导入的文件夹中的项目识别为maven项目

问题描述 大家经常遇到导入某个文件夹的时候&#xff0c;需要将某个子文件夹识别为maven项目 解决方案...

CleanMyMac4.16中文最新版本下载

当很多人还在为电脑运行缓慢、工作问题不能快速得到解决而烦恼的时候&#xff0c;我已经使用过了多款系统清理工具&#xff0c;并找到了最适合我的那一款。我的电脑是超耐用的Mac book&#xff0c;接下来给大家介绍三种在众多苹果电脑清理软件的排名较高的软件。 一、Maintena…...

谷歌正式发布最强 AI 模型 Gemini

2023年12月6日&#xff0c;谷歌公司宣布推出其被认为是规模最大、功能最强大的人工智能模型 Gemini。 Gemini将分为三个不同的套件&#xff1a;Gemini Ultra、Gemini Pro和Gemini Nano。 Gemini Ultra被认为具备最强大的能力&#xff0c;Gemini Pro则可扩展至多任务&#x…...

无人机语音中继电台 U-ATC118

简介 甚高频无线电中继通讯系统使用经过适航认证的机载电台连接数字网络传输模块&#xff0c;通过网络远程控制无缝实现无人机操作员与塔台直接语音通话。无人机操作员可以从地面控制站远程操作机载电台进行频率切换、静噪开关、PTT按钮&#xff0c;电台虚拟面板与真实面板布局…...

两种测量方式的自适应卡尔曼滤波数据融合

文章目录 测试效果代码CMakeLists.txt参考测试效果 代码 #include <iostream> #include <Eigen/Dense> #include...

.Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)

机缘 不知不觉,.NET8都已经面世,而我们一直还停留在.netframework4.5开发阶段,最近准备抽空研究一下.Net6,一是为了提高技术积累,一方面想着通过这次的学习,看有没有可能将老的FX版本替换到.Net6开发上,经过查找官方资料,对.Net6支持的系统版本做一个分享,方便大家后期…...

CopyOnWriteArraySet怎么用

简介 CopyOnWriteArraySet是一个线程安全的无序集合&#xff0c;它基于“写时复制”的思想实现。它继承自AbstractSet&#xff0c;可以将其理解成线程安全的HashSet。 CopyOnWriteArraySet在读取操作比较频繁、写入操作相对较少的情况下可以提高程序的性能和可靠性。它的线程…...

uniapp得app云打包问题

获取appid&#xff0c;具体可以查看详情 也可以配置图标&#xff0c;获取直接生成即可 发行 打包配置 自有证书测试使用时候不需要使用 编译打包 最后找到安装包apk安装到手机 打包前&#xff0c;图片命名使用要非中文&#xff0c;否则无法打包成功会报错...

Linux bin包生成

需求背景&#xff1a; 在实际项目时我们很少把源码用个tar给到客户&#xff0c;这样显得很不专业&#xff0c;且有的时候我们提供补丁&#xff0c;那么这个时候我们提供一个补丁的bin包可以直接安装运行就显得很高大上了。 物料准备 准备一台liunx&#xff0c;虚拟机亦可&am…...

Java多人聊天

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…...

自动驾驶:传感器初始标定

手眼标定 机器人手眼标定AxxB&#xff08;eye to hand和eye in hand&#xff09;及平面九点法标定 Ax xB问题求解&#xff0c;旋转和平移分步求解法 手眼标定AXXB求解方法&#xff08;文献总结&#xff09; 基于靶的方法 相机标定 (1) ApriTag (2) 棋盘格&#xff1a;cv::f…...

如何将 MySQL 数据库转换为 SQL Server

本文解释了为什么组织希望将其 MySQL 数据库转换为 Microsoft SQL 数据库。本文接着详细介绍了尝试转换之前需要记住的事项以及所涉及的方法。专业的数据库转换器工具将帮助您快速将 MySQL 数据库记录转换为 MS SQL Server。 在继续之前&#xff0c;我们先讨论一下 MySQL 到 M…...

【开源】基于Vue+SpringBoot的河南软件客服系统

文末获取源码&#xff0c;项目编号&#xff1a; S 067 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S067。} 文末获取源码&#xff0c;项目编号&#xff1a;S067。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、…...

《算法面试宝典》--深度学习常见问题汇总

第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 多层感知机中的特征神经元模型称为感知机,由Frank Rosenblatt于1957年发明。 其中 x 1 x_1 x...

【计算机网络实验】实验三 IP网络规划与路由设计(头歌)

目录 一、知识点 二、实验任务 三、头歌测试 一、知识点 IP子网掩码的两种表示方法 32位IP子网掩码&#xff0c;特点是从高位开始连续都是1&#xff0c;后面是连续的0&#xff0c;它有以下两种表示方法&#xff1a; 传统表示法&#xff0c;如&#xff1a;255.255.255.0IP前…...

CodeBlocks添加头文件,解决fatal error: ui.h No such file or directory

问题描述 在使用codeblocks工具进行LVGL仿真过程中报错&#xff0c;找不到头文件 原因分析&#xff1a; 没有将头文件加入编辑器搜索的目录中&#xff0c;编译时找不到头文件。 解决方案&#xff1a; 将要包含的头文件的目录加进去就可以了...

鸿蒙开发:UIAbility组件与UI的数据同步-使用EventHub进行数据通信【鸿蒙专栏-21】

文章目录 ArkTS应用模型中UIAbility组件与UI的数据同步使用EventHub进行数据通信使用globalThis进行数据同步1. UIAbility和Page之间使用globalThis2. UIAbility和UIAbility之间使用globalThis3. 使用globalThis的注意事项4. 使用globalThis的注意事项同名对象覆盖导致问题的场…...