Ubuntu 20.04 卸载和安装 MySQL8.0
卸载
首先,检查一下系统安装的软件包有哪些,使用dpkg -l | grep mysql
命令:
为了将MySQL卸载干净,这些文件都需要被删除。
在Ubuntu20.04系统下,卸载干净MySQL8.0以确保下一次安装不会出错,可以按照以下步骤进行:
一、停止MySQL服务
首先,需要确保MySQL服务已经停止运行。可以使用以下命令来停止MySQL服务:
sudo service mysql stop
二、卸载MySQL软件包
接下来,使用apt-get
命令来卸载MySQL相关的软件包。为了彻底卸载,可以使用--purge
选项,它会删除软件包及其配置文件。
sudo apt-get autoremove --purge mysql-server-8.0 mysql-client-8.0 mysql-common
注意: 这里的mysql-server-8.0
、mysql-client-8.0
和mysql-common
是MySQL8.0版本的具体软件包名称。如果你的系统中安装了其他与MySQL相关的软件包(如mysql-server-core-8.0
等),也需要一并卸载。刚才第一步,我们使用dpkg -l | grep mysql
命令查看到的文件都需要被删除。
这里我使用的命令如下,具体软件包根据你们的情况来定,:
sudo apt-get autoremove --purge mysql-server-8.0 mysql-client-8.0 mysql-common mysql-server-core-8.0 mysql-client-core-8.0 libmysqlclient21
三、删除MySQL残留文件和目录
卸载软件包后,可能还会有一些残留的文件和目录。这些残留文件可能包括MySQL的配置文件、数据库文件等。
这里先查看一下具体的残留文件和目录(这些文件属于系统文件,查看需要权限,这里使用sudo命令提权):
sudo ls /var/lib/mysql
sudo ls /etc/mysql
sudo ls /var/log/mysql
能够查到的文件,就删除掉,没有就不需要删。如,我系统中/var/log/mysql
目录下,没有文件就不需要删除。
为了彻底清理这些残留文件,可以使用以下命令:
sudo rm -rf /var/lib/mysql # 删除MySQL数据库文件目录
sudo rm -rf /etc/mysql # 删除MySQL配置文件目录
sudo rm -rf /var/log/mysql # 删除MySQL日志文件目录(如果有)
删除后,我们可以再使用命令查看一下,对应的文件是否被删除了:
sudo ls /var/lib/mysql
sudo ls /etc/mysql
sudo ls /var/log/mysql
找不到文件,就是删除成功了。
四、清理APT缓存和残留的软件包
为了确保系统中没有残留的MySQL软件包或依赖项,可以使用以下命令来清理APT缓存和残留的软件包:
sudo apt-get autoremove # 自动删除不再需要的依赖包
sudo apt-get autoclean # 清理APT下载的软件包缓存
五、验证卸载是否彻底
最后,可以使用以下命令来验证MySQL是否已经被彻底卸载:
dpkg --list | grep mysql
如果命令没有返回任何结果,说明MySQL已经被彻底卸载。
安装
查看操作系统版本
这里我们先使用命令lsb_release -a
,查看一下当前系统版本,以便后续的使用:
如果没有命令lsb_release
,可以先安装一下:
首先,更新一下软件包:sudo apt-get update
;然后安装软件包即可,sudo apt-get install lsb-release -y
。
访问下载页面并下载发布包
到MySQL官网下载发布包:官网,点击Download即可,将发布包安装到Windows。
如果官网网址发生变动,可以按照以下步骤进行查找:
- 浏览器输入官网网址
https://www.mysql.com/
- 选择首页downloads选项卡
- 点击
MySQL Community (GPL) Downloads »
- 选择
MySQL APT Repository
- 点击Download即可
具体画面如下:
安装发布包
首先,要切换到root用户,并进入root用户的home目录:
sudo su # 切换成root用户
cd ~ # 进行root的home目录
ll # 列出目录内容
还需要再下载一个工具lrzsz
,用于将刚才下载到Windows电脑中的发布包上传到Ubuntu中。如果你的系统中没有这个工具,可以通过以下步骤进行安装:
可以先更新一下软件包:apt-get update
;然后安装软件包即可,apt-get install lrzsz -y
。(注意,这里我们已经是root用户,不需要再在命令前加上sudo了)。
这里将发布包从Windows上传到Ubuntu中,可以直接将文件拖拽到Ubuntu页面中,也可以在Ubuntu命令行中,输入rz
命令(注意rz后面有一个空格)。这里我使用第二种方法:
接下来才真正安装发布包~
安装发布包
执行安装命令dpkg -i
,后面跟着空格和你的发布包名称。(可能我的发布包版本跟你的不同,以你的为准。如果怕名字打错,可以在后面先打出mysql
,再按一下Tab
键进行补齐即可):
dpkg -i mysql-apt-config_0.8.33-1_all.deb
第一个选项,是选择要安装的MySQL的版本,可以回车进行选择,回车后的界面为:
再按一下Esc
键可以退回上一个界面。
按方向键下键,选择第二个选项,第二个选项是用来安装连接器的:
这里就直接是Enabled
即可。
总体界面可能你的与我的不同,但是只要有上面两个选项即可。下面直接选择ok
回车即可。
从MySQL APT 源更新包信息
apt-get update
安装MySQL
执行命令:apt-get install mysql-server -y
安装过程中,会让你输入初始密码(这个密码是你马上用来登录MySQL时使用的密码):
后面还有一步,重新输入密码,你直接重新输入即可,这里就不截图了。
重新输入密码后,出现选择默认的身份验证插件(default authentication plugin):
这里可以使用第一个,选择第一个回车即可:
安装完成。
查看MySQL状态
安装完成后MySQL服务会自动启动,所以这里直接查看一下:
systemctl status mysql #查看mysql服务状态
为了后续MySQL操作,这里可以将MySQL服务设置为开机自启动:
systemctl enable mysql #设置自启动
systemctl list-unit-files|grep mysql #查看状态
这样安装就算大功告成了。
之后就不需要root用户了,我们可以再切回普通用户:
su 用户名 # 切换用户
cd ~ # 回到用户家目录
登录MySQL
mysql -uroot -p
在输入刚才你设置的密码即可。
下面执行一些简单的SQL语句,没有什么意义:
这样就完成了。下面是一些其他设置,可能你现在不需要,以后需要的时候再回来看如何设置即可。
一些配置
字符集
一、找到并编辑配置文件
- MySQL的配置文件通常位于
/etc/mysql/
目录下,文件名可能是my.cnf
或mysql.conf.d/mysqld.cnf
。你可以使用如下命令来找到并编辑这个文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
或者使用其他文本编辑器,如vim
:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 在编辑器中,找到
[mysqld]
部分。如果文件中没有该部分,请手动添加。
二、添加或修改字符集设置
- 在
[mysqld]
部分中,添加或修改以下行来设置默认字符集和校对规则:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
这里,character-set-server=utf8mb4
设置了MySQL服务器的默认字符集为utf8mb4
,collation-server=utf8mb4_unicode_ci
设置了默认的校对规则。
- 如果你还希望客户端在连接时也使用
utf8mb4
字符集,可以在配置文件中添加以下部分:
[client]
default-character-set=utf8mb4
三、保存并重启MySQL服务
- 保存对配置文件的修改。在
nano
编辑器中,你可以按Ctrl+O
保存文件,然后按Ctrl+X
退出编辑器。在vim
编辑器中,你可以按Esc
键,然后输入:wq
保存并退出。 - 重启MySQL服务以使修改生效。使用以下命令重启MySQL服务:
sudo systemctl restart mysql
四、验证修改
- 重新登录MySQL数据库。使用以下命令登录:
mysql -u root -p
输入root用户的密码后,登录到MySQL控制台。
- 在MySQL控制台中,执行以下命令来查看当前的字符集设置:
SHOW VARIABLES LIKE 'character_set%';
这将显示所有与字符集相关的变量,包括character_set_database
(数据库字符集)、character_set_server
(服务器字符集)等。确认character_set_server
和character_set_database
的值已经更新为utf8mb4
。
通过以上步骤,你已经成功在Ubuntu 20.04系统下通过配置文件设置了MySQL 8.0的字符集为utf8mb4
。这将有助于确保你的数据库能够正确处理多语言数据和特殊字符。
安装开发包
在Ubuntu 20.04下安装MySQL 8.0后,如果后续想要使用其他语言(如C或C++)操作MySQL,需要安装MySQL开发库。
1. 确认MySQL开发库是否已安装
首先,你需要确认MySQL的开发库是否已经安装在你的系统上。在Ubuntu上,这通常是通过安装libmysqlclient-dev
或类似的包来实现的。
你可以使用以下命令来检查这个包是否已经安装:
dpkg -l | grep libmysqlclient-dev
如果输出中没有显示libmysqlclient-dev
包,那么你需要安装它。
2. 安装MySQL开发库
如果MySQL开发库没有安装,你可以使用以下命令来安装它:
sudo apt-get update
sudo apt-get install libmysqlclient-dev
这将安装MySQL的开发库,包括头文件和库文件,到系统的标准位置。
3. 查找头文件
使用命令ls /usr/include/
查看有咩有MySQL对应的头文件:
安装完libmysqlclient-dev
后,头文件通常会被放置在/usr/include/mysql
目录下(注意,这个路径可能因MySQL版本和Ubuntu版本的不同而有所变化)。你可以使用find
命令来查找这些头文件:
sudo find /usr/include -name "*.h" | grep mysql
这将列出所有与MySQL相关的头文件。
4. 查找客户端动态库
在Ubuntu系统上安装完MySQL的开发包(如libmysqlclient-dev
)后,对应的动态库文件通常会被放置在系统的标准库目录中。这个目录可能因Ubuntu版本和MySQL版本的不同而有所变化,但常见的路径包括/usr/lib/
、/usr/lib/x86_64-linux-gnu/
(对于64位系统)等。
要查找MySQL的动态库文件,你可以使用find
命令或locate
命令。以下是使用find
命令查找MySQL动态库的一个示例:
sudo find /usr -name "libmysqlclient*"
这个命令会在/usr
目录下搜索所有名称以libmysqlclient
开头的文件,这通常会包括动态库文件(如.so
文件)。
另外,你也可以使用dpkg
命令来查看libmysqlclient-dev
包安装的文件列表,这可能会给出动态库文件的确切路径:
dpkg -L libmysqlclient-dev | grep ".so"
这个命令会列出libmysqlclient-dev
包安装的所有文件,并通过grep
命令筛选出以.so
结尾的文件(即动态库文件)。
请注意,由于系统配置和MySQL版本的不同,动态库文件的实际路径可能会有所不同。因此,上述命令给出的路径只是常见的示例,并不保证在所有情况下都适用。如果你无法找到动态库文件,请确保你已经正确安装了MySQL的开发包,并尝试使用不同的搜索路径或命令来查找。
此外,如果你使用的是MySQL的某个特定版本(如从源代码编译的版本),你可能需要查看MySQL的安装文档或配置文件,以确定动态库文件的确切位置。
5. 配置编译器
如果你在使用C或C++编写程序并希望链接MySQL库,你需要在编译时指定头文件的路径和库文件的路径。这通常是通过在编译命令中添加-I
和-L
选项来实现的,以及使用-lmysqlclient
来链接MySQL库。
例如,如果你的源文件是my_program.c
,你可以使用以下命令来编译它:
gcc -o my_program my_program.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
注意,这里的/usr/lib/mysql
是库文件通常所在的路径,但也可能因系统配置的不同而有所变化。你可以使用find
命令或locate
命令来查找库文件的确切位置。
注意事项
- 如果你在安装
libmysqlclient-dev
时遇到问题,可能是因为你的Ubuntu系统没有启用MySQL的官方APT存储库。在这种情况下,你可以按照MySQL官方文档中的说明来添加和配置这个存储库。 - 如果你使用的是MySQL的某个特定版本(如从源代码编译的版本),你可能需要下载并安装与该版本相对应的开发库。
- 在编写和编译与MySQL交互的程序时,请确保你遵循了MySQL的API和最佳实践,以避免潜在的安全问题和兼容性问题。
今天的分享就到这里了,如果,你感觉这篇博客对你有帮助的话,就点个赞吧!感谢感谢……
相关文章:
Ubuntu 20.04 卸载和安装 MySQL8.0
卸载 首先,检查一下系统安装的软件包有哪些,使用dpkg -l | grep mysql命令: 为了将MySQL卸载干净,这些文件都需要被删除。 在Ubuntu20.04系统下,卸载干净MySQL8.0以确保下一次安装不会出错,可以按照以下…...
【深度学习-论文】通俗易懂的理解多标签识别
文章目录 1. 文章主要内容2. 通俗易懂的理解多标签分类到底是如何实现的通俗易懂的多标签分类实现介绍实现步骤为什么这么做?小结论文题目:Rada r emitter multi-la bel recognition based on residual network 基于残差网络的雷达发射机多标签识别1. 文章主要内容 《基于残…...
“TA”说|表数据备份还原:SQLark 百灵连接助力项目部署验收
💬 南飞雁|应用开发工程师 有些重要项目的部署验收,会在生产环境完成,验收完成后,又需要把这部分数据清空。这时就需要对数据表进行备份和还原,虽然可以通过命令直接实现,但是有一些操作门槛&am…...
android studio方便快捷保存数据读取数据(SharedPreferences)
原理:会自动生成一个xml文件,然后保存参数。xml文件的名字就是要读取的文件的名字。可以创建多个这样的xml文件。(储存方式是键值对方式,一个名字 对应 一个值) 首先先创建两个对象 private SharedPreferences shar…...
31.设计模式
单例模式 比如工具类,进需要一个实例,即可以在各处处理。用以节省创建类对象的开销和内存的开销。 保证一个类只有一个实例,而客户可以从一个众所周知的访问点访问它。 实现一个简单的单例 在一个python文件中定义一个类,并创…...
RTOS之邮箱
邮箱 邮箱 (Mailbox) 服务是实时操作系统中一种常用的线程间通信机制。它提供了一种高效、低开销的消息传递方式,允许线程之间交换固定大小的数据。 1. 邮箱的应用场景 考虑一个简单的示例:线程 1 负责检测按键状态并将状态信息发送出去,线程…...
Linux setfacl 命令详解
文章目录 Linux setfacl 命令详解一、ACL 和 setfacl 简介二、基本语法三、常用操作1. 查看 ACL2. 为用户设置权限3. 为组设置权限4. 删除 ACL 条目5. 设置默认 ACL6. 递归设置 ACL 四、示例操作1. 创建示例目录和文件2. 设置 ACL3. 验证 ACL 五、注意事项六、总结 Linux setfa…...
OpenCV 学习记录:首篇
最近在学习机器视觉,希望能通过记录博客的形式来鞭策自己坚持学完,同时也把重要的知识点记录下来供参考学习。 1. OpenCV 介绍与模块组成 什么是 OpenCV? OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软…...
Java游戏开发基础:从零开始制作一个简单的2D游戏
目录 游戏开发概述 开发工具 项目结构 1. 创建游戏窗口 2. 游戏面板 解释: 3. 玩家类 解释: 4. 障碍物类 解释: 5. 游戏循环与碰撞检测 总结 在现代游戏开发中,Java被广泛应用于创建各种类型的游戏,特别是…...
入门STL(map/multiset)
目录 编辑 1.map 输入 输出 样例 输入 输出 解题代码: 2.multiset 输入 输出 样例 输入 输出 解题代码: 留下你的足迹吧!谢谢。 1.map map函数是一个内置函数,它允许你对一个序列)的每个元素应用…...
【mysql】1205 -Lock wait timeout exceeded; try restarting transaction
问题: mysql8执行SQL提示下面错误: 1205 -Lock wait timeout exceeded; try restarting transaction 1205-超过锁定等待超时;尝试重新启动事务 可能的原因: 事务冲突:多个事务同时尝试修改同一行数据,导…...
【开源免费】基于SpringBoot+Vue.JS在线宠物用品交易网站(JAVA毕业设计)
本文项目编号 T 092 ,文末自助获取源码 \color{red}{T092,文末自助获取源码} T092,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
postman读取文件执行
要从文件获取的变量 text 在pre-request 中写从文件获取数据的脚本。脚本实现了,设置了text默认值,从文件读取text列,将text存入环境变量 //获取text参数 var text "济南天气"; if(data.text){ text data.text } pm.environment.…...
UDP系统控制器_音量控制、电脑关机、文件打开、PPT演示、任务栏自动隐藏
UDP系统控制器(ShuiYX) 帮助文档 概述 本程序设计用于通过UDP协议接收指令来远程控制计算机的音量、执行特定命令和其他功能。为了确保程序正常工作,请确认防火墙和网络设置允许UDP通信,并且程序启动后会最小化到托盘图标。 命令格式及说明 音量控制…...
pydantic BaseModel
1. Pydantic 是什么? Pydantic 是一个Python库,主要用于数据验证和设置管理。它通过定义数据模型(Model)来确保输入数据的类型和结构符合预期。 Pydantic 的核心功能是基于Python的类型提示(Type Hints)&a…...
[创业之路-202]:任正非管理华为的思想与毛泽东管理党、军队、国家的思想的相似性与差异性
目录 一、相似性 1、指导思想 2、管理策略 3、危机意识与自我否定 4、理想主义与奋斗精神 二、差异性 1、哲学基础与思想倾向 2、管理方法与策略 3、组织文化与价值观 一、相似性 任正非管理华为的思想与毛泽东管理党、军队、国家的思想在多个方面存在相似性。 以下…...
【渗透测试】|brupsuit的使用
一、 1.1爆破模块: 1、将拦截发送到intruder模块 2、在intruder模块设置pyaload位置 3、选择攻击类型 4、 5、设置好攻击类型和payload集就可以点击开始攻击,点击后弹出具体攻击详情 6、【payloads】模块相关 6.1 payload集为【简单列表】 添加&…...
MySQL三大日志-Binlog
Binlog简介 Redo Log 是属于InnoDB引擎所特有的日志,而MySQL Server也有自己的日志,即 Binary log(二进制日志),简称Binlog。Binlog是记录所有数据库表结构变更以及表数据修改的二进制日志,不会记录SELECT…...
vue.js 指令的修饰符
Vue.js 提供了一些指令修饰符,用于在指令的行为上添加额外的功能。下面详细解析一些常用的指令修饰符,并提供相应的代码实例。 .prevent:阻止默认事件 通过添加 .prevent 修饰符,可以阻止指令绑定的元素触发默认事件。 代码实例&a…...
重撸设计模式--代理模式
文章目录 定义UML图代理模式主要有以下几种常见类型:代理模式涉及的主要角色有:C 代码示例 定义 代理模式(Proxy Pattern)属于结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象&am…...
“从零到一:揭秘操作系统的奇妙世界”【操作系统系统调用】
【1】定义 系统调用是用户空间程序请求操作系统服务的一种机制。系统调用的调用程序运行在用户态,被调用程序运行在内核态。系统调用可以嵌套使用。系统调用是通过中断机制实现的,并且一个OS的所有系统调用都通过一个中断入口来实现参数通常通过寄存器传…...
MQTT协议常见问题
在MQTT协议中,发送DISCONNECT报文与在TCP层调用network_disconnect(或类似的函数,具体名称可能因实现而异)之间存在重要的关系,这涉及到协议的正确性和资源的正确释放。 ### MQTT DISCONNECT报文 MQTT DISCONNECT报文…...
ArcGIS计算土地转移矩阵
在计算土地转移矩阵时,最常使用的方法就是在ArcGIS中将土地利用栅格数据转为矢量,然后采用叠加分析计算,但这种方法计算效率低。还有一种方法是采用ArcGIS中的栅格计算器,将一个年份的地类编号乘以个100或是1000再加上另一个年份的…...
数据结构十大排序之(冒泡,快排,并归)
接上期: 数据结十大排序之(选排,希尔,插排,堆排)-CSDN博客 前言: 在计算机科学中,排序算法是最基础且最重要的算法之一。无论是大规模数据处理还是日常的小型程序开发,…...
MySql:基本查询
✨✨作者主页:嶔某✨✨ ✨✨所属专栏:MySql✨✨ 本文的代码中, [ ] 里面的都可以省略 在 MySQL 中,CRUD 是数据库操作的核心,代表以下四种基本操作: C(Create):创建、插…...
28、基于springboot的房屋租赁系统
房屋是人类生活栖息的重要场所,随着城市中的流动人口的增多,人们对房屋租赁需求越来越高,为满足用户查询房屋、预约看房、房屋租赁的需求,特开发了本基于Spring Boot的房屋租赁系统。 本文重点阐述了房屋租赁系统的开发过程&…...
96 vSystem
vSystem系统 1 技术背景 网络虚拟化旨在构建出一套与网络底层物理拓扑相互独立的逻辑网络环境,提供给不同需求的用户使用。基于这种思想,诞生出了 VLAN 技术和 VPN 技术。近年来, 随着以 VMM(Virtual Machine Monitor,…...
[创业之路-197]:华为的发展路径启示
目录 前言: 一、由小公司走向大公司: 二、由农村包围城市: 三、由国内走向国际: 四、由代理商走向设备商,再到系统方案商,再到生态系统的搭建: 五、由随性到跟随,到赶超&#…...
两款Windows电脑便签,常用的电脑桌面便签小工具推荐
现在的职场环境中,效率高低会影响我们的去留以及晋升,而电脑便签无疑是提高效率的重要辅助工具。对于Windows电脑的用户来说,选择合适的电脑桌面便签小工具尤为重要。今天为大家推荐两款使用过且好用实用的Windows电脑便签,希望可…...
sql server索引优化语句
第一步 建一个测试表 --create table TestUsers --( -- Id int primary key identity(1,1), -- Username varchar(30) not null, -- Password varchar(10) not null, -- CreateDateTime datetime not null --)第二步 插入100w数据 大概1分钟执行时间 ----插入数据…...
从监控异常发现网络安全
前言 最近在前端异常监控系统中,发现一些异常信息,从中做了一些分析,得到一些体会,因此作文。 发现异常 某天早上打开监控系统发现,当天凌晨1点过测试环境有2个前端上报的异常,报错的原因都是由于没有获取…...
Android学习(七)-Kotlin编程语言-Lambda 编程
Lambda 编程 而 Kotlin 从第一个版本开始就支持了 Lambda 编程,并且 Kotlin 中的 Lambda 功能极为强大。Lambda 表达式使得代码更加简洁和易读。 2.6.1 集合的创建与遍历 集合的函数式 API 是入门 Lambda 编程的绝佳示例,但在开始之前,我们…...
中国人工智能学会技术白皮书
中国人工智能学会的技术白皮书具有多方面的重要作用,是极具权威性和价值的参考资料。 看看编委会和编写组的阵容,还是很让人觉得靠谱的 如何下载这份资料呢?下面跟着步骤来吧 步骤一:进入中国智能学会官网。百度搜索“中国智能学…...
【集合】Java 8 - Stream API 17种常用操作与案例详解
文章目录 Java8 Stream API 17种常用操作与案例详解1. collect():将流中的元素收集到集合中2. filter():根据条件过滤流中的元素3. map():元素映射为另一个值4. forEach():对流中的元素执行操作5. flatMap():将流中的元…...
Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
文章目录 一、SpringWeb概述 二、SpringWeb特点 三、搭建SpringWeb(在web项目中) 1、导包 2、在web.xml文件中配置统一拦截分发器 DispatcherServlet 3、开启 SpringWEB 注解 4、处理器搭建 四、SpringWeb运行流程 五、SpringWeb组件 1、前端控…...
uni-app商品搜索页面
目录 一:功能概述 二:功能实现 一:功能概述 商品搜索页面,可以根据商品品牌,商品分类,商品价格等信息实现商品搜索和列表展示。 二:功能实现 1:商品搜索数据 <view class="search-map padding-main bg-base"> <view class…...
基于Spring Boot的远程教育网站
一、系统背景与意义 随着互联网技术的飞速发展和普及,远程教育已成为现代教育体系中的重要组成部分。它打破了时间和空间的限制,让学习者可以随时随地进行学习。基于Spring Boot的远程教育网站正是为了满足这一需求而设计的,它利用互联网技术…...
降低Mobx技术债问题-React前端数据流方案调研整理
我们现在主要是使用Mobx,但是Mobx的易于上手和灵活度也带来了很多预期以外的问题,随着项目的增长我们的代码技术债变得愈加沉重,不同的模块杂糅一起、单一store无限膨胀。 为此我们的调研是希望能找到一个更好的state配置、数据流的约定方案。…...
Linux通信System V:消息队列 信号量
Linux通信System V:消息队列 & 信号量 一、信号量概念二、信号量意义三、操作系统如何管理ipc资源(2.36版本)四、如何对信号量资源进行管理 一、信号量概念 信号量本质上就是计数器,用来保护共享资源。多个进程在进行通信时&a…...
STM32, GD32 cubemx CAN 低速率125kbps 报文丢失,解决了
用STM32 CUBEMX生成的GD32的 can程序,在500K波特率时可以正常使用,没有发现丢包,但速率降到250k和125k时,发送138帧数据,会丢失5个包。(系统时钟168M,APB1的时钟42M) 试了各种方法无…...
医疗服务品质提升:SSM 与 Vue 打造医院预约挂号系统方案
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了医院预约挂号系统的开发全过程。通过分析医院预约挂号系统管理的不足,创建了一个计算机管理医院预约挂号系统的方案。文章介绍了医院预约挂号系统的系…...
在UE5中调用ImGui图形界面库
ImGui是一个小巧灵活、简洁美观的图形界面库 首先我们直接参考Github https://github.com/SLSNe/Unreal5-ImGui 把项目下载下来后 打开项目目录或者引擎目录 项目根目录/Plugins/ImGui/ 或 UE5引擎根目录/Engine/Plugins/ 如果没有Plugins文件夹就新建一个 把项目放里面…...
汇聚点滴启迪思维(三)
switch存在的问题 缺少default语句 switch语句可以包含一个可选的default语句,用于处理没有与任何case标签匹配的情况。如果没有default语句,并且没有与表达式匹配的case标签,程序将不会执行任何操作。 除了case switch包含的大括号中间…...
C#代码实现把中文录音文件(.mp3 .wav)转为文本文字内容
我们有一个中文录音文件.mp3格式或者是.wav格式,如果我们想要提取录音文件中的文字内容,我们可以采用以下方法,不需要使用Azure Speech API 密钥注册通过离线的方式实现。 1.首先我们先在NuGet中下载两个包 NAudio 2.2.1、Whisper.net 1.7.3…...
第18篇 :深入剖析systemverilog中 randomize 再谈失败案例(六)
今天,我们再谈一随机失败案例,希望再次同大家续探讨这块内容。 一 案例分析 我们先看一例子,代码如下: 上述代码中,共有5处使用 randomize 随机。它们的随机对象都是类 helloworld_test 中的 rand shortint unsigned counter ; 其中,counter 被赋予初始数值 66 。 …...
(耗时4天制作)详细介绍macOS系统 本博文含有全英版 (全文翻译稿)
(耗时4天制作)详细介绍macOS系统 本博文含有全英版-CSDN博客 全篇英文 Introduction to the macOS System I. Overview of macOS macOS is a proprietary operating system developed by Apple Inc., primarily used for Macintosh (Mac) computers. It is the first comme…...
React与Vue的区别(相同点和不同点)
前言 JavaScript是世界上最流行的语言之一,React和Vue是JS最流行的两个框架。但各有优缺点,本文将详细对比两大框架 一、框架背景 React React是由Facebook开发的用于构建用户界面的JavaScript库,Facebook对市场上JavaScript MVC框架都不太…...
flutter --no-color pub get 超时解决方法
新建Flutter项目后,运行报错,需要执行pub get 点击Run ‘flutter pub get’ … … … 卡着,不动了,提示超时 是因为墙的问题 解决方案: 添加以下环境变量 变量名: PUB_HOSTED_URL 变量值: https://pub.flutter-io.cn …...
MacPorts 中安装高/低版本软件方式,以 RabbitMQ 为例
查询信息 这里以 RabbitMQ 为例,通过搜索得到默认安装版本信息: port search rabbitmq-server结果 ~/Downloads> port search rabbitmq-server rabbitmq-server 3.11.15 (net)The RabbitMQ AMQP Server ~/Downloads>获取二进制文件 但当前官网…...
启动报错java.lang.NoClassDefFoundError: ch/qos/logback/core/status/WarnStatus
报错信息图片 日志: Exception in thread "Quartz Scheduler [scheduler]" java.lang.NoClassDefFoundError: ch/qos/logback/core/status/WarnStatus先说我自己遇到的问题,我们项目在web设置了自定义的log输出路径,多了一个 / 去…...