- 博客(119)
- 收藏
- 关注
原创 【Mysql进阶知识】Mysql服务器配置与管理
当通过mysqld启动数据库服务器时,可以通过选项文件或命令行中提供选项。但是,在大多数情况下,为确保服务器每次运行时都使用相同的选项,最好的方法是在选项文件中指定相应的选项。mysqld从选项文件中的[mysqld]和[server]组(节点)中读取选项内容。mysqld接受的选项可以通过查看。列表中的有些项目是可以在服务器启动时设置的系统变量,系统变量可以在连接MySQL后使用语句查看。但有些内容只在--help中存在,使用时并没有显示。这是因为它们只是选项而不是系统变量。
2025-01-22 10:00:00
945
1
原创 【Mysql日志介绍】一般查询日志、慢查询日志、错误日志、二进制日志、Redo Log 、UndoLog
MySQL Server 有以下几种日志,可以记录服务器正在发生的活动。日志类型日志信息错误日志 (Error log)mysqld在启动、运行或停止时遇到的问题一般查询日志 (General query log)已建立的客户端连接和从客户端接收到的语句慢查询日志 (Slow query log)执行时间超过指定秒数的查询二进制日志 (Binary log)更改数据的语句(也用于主从复制)中继日志 (Relay log)从源服务器接收到的数据更改。
2025-01-22 10:00:00
1215
原创 【Mysql进阶知识】mysqlshow -显示数据库、表和列信息、mysqldumpslow - 总结慢查询日志文件、mysqlbinlog - 处理二进制日志文件、mysqlslap-负载仿真客户
在平时使用MySQL数据库时,经常进行查询操作,有些查询语句执行的时间非常长,当执行时间超过设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要用日志记录下来称为慢查询日志。mysqldumpslow可以解析慢查询日志文件并汇总其内容,有关慢查询日志的内容我们在MySQL服务器配置与管理专题进行讲解。
2025-01-16 17:06:17
826
3
原创 【Mysql进阶知识】mysqlcheck -表维护程序、mysqldump - 数据库备份程序、mysqladmin - MySQL 服务器管理程序
在命令行中使用MySQL发行版中的其他工具时,一些选项是公共的,比如用户名和密码,使用方法和mysql客户端相同。在这里统一列出,后面我们在介绍不同的工具时,只讨论个性的选项及作用。mysqladmin 的常用选项参考公共选项部分,可以在命令行中指定,也可以在选项文件中通过 [mysqladmin] 和 [client] 组进行指定。mysqlcheck有如下常用选项,可以在命令行中指定,也可以在选项文件中通过 [mysqlcheck] 和 [client] 组进行指定。
2025-01-16 15:18:32
789
原创 【Mysql进阶知识】从.SQL文件中执行SQL语句
有时候我们需要从 SQL 文件执行一些 SQL 语句,比如要把一个数据库从一台服务器 A 复制到另一台服务器 B 上,那么可以先从服务器 A 导出数据到 SQL 文件,然后在服务器 B 执行这个 SQL 文件。
2025-01-16 11:07:37
601
原创 【Mysql进阶知识】Mysql 程序的介绍、选项在命令行配置文件的使用、选项在配置文件中的语法
当MySQL安装完成后,除了我们常用的mysql客户端程序,通常还会包含如下程序,本篇博客就来介绍一下常用的一些程序的作用和使用Linux系统程序⼀般在 /usr/bin 目录下,可以通过命令查看:windows系统目录:你的安装路径 \MySQL Server 8.0\bin,可以通过命令查看:下面是一些常用的程序简介,如果还想了解其他的程序可以到官网中查看程序名简介mysqldMySQL的守护进程即MySQL服务器,要使用MySQL服务器,mysqld必须正在运行状态mysql。
2025-01-16 09:00:00
1424
原创 【GIt原理与使用】Git远程仓库
Git 是分布式版本控制系统,同一个 Git 仓库可以分布到不同的机器上。最初,只有一台机器拥有一个原始版本库,此后,其他机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。你可能会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩?其实一台电脑上也是可以克隆多个版本库的,只要不在同一个目录下。不过,在现实生活中没有人会这么傻在一台电脑上搞几个远程库玩,因为一台电脑上搞几个远程库完全没有意义,而且硬盘挂了会导致所有库都挂掉。
2025-01-09 16:45:47
923
2
原创 【Git原理和使用】Git 分支管理(创建、切换、合并、删除、bug分支)
现在有了分支,就不用怕了。添加⼀个新功能时,你肯定不希望因为⼀些实验性质的代码,把主分支搞乱了,所以,每添加⼀个新 功能,最好新建⼀个分支,我们可以将其称之为 feature 分支,在上面开发,完成后,合并,最后,删除该 feature 分支。举个例子,dev分支修改了ReadMe文件,并且提交了,在这个期间,别人在master分支也修改了master分支,那dev分支在与master分支合并的时候,git就不知道应该保留dev分支下的修改还是保留master分支下的修改,就存在了合并冲突。
2025-01-09 12:00:02
2528
原创 【Git原理与使用】版本回退reset 详细介绍、撤销修改、删除文件
如果我们提交完version3,然后觉得version3的代码写的太烂了,想要基于version2重新编写,此时我们就需要回退到version2,由于我们想让工作区的代码也跟着回退,所以我们需要使用--hard参数。在实际开发中,由于长时间的开发了,导致 commit id 早就找 不到了,可突然某⼀天,我又想回退到 version3,那该如何操作呢?这样删除是有用的,仅仅删除了工作区的文件,如果我们用git status查看,会提示我们哪些文件被删掉了,此时工作区和版本库的文件就不一样了。
2025-01-08 13:14:30
2122
原创 【Git原理与使用】Git的安装、本地仓库的配置及工作区、暂存区、版本库的理解
如果使用了该选项,表示这台机器上所有的 Git 仓库都会使用这个配置。如果你希望在不同仓库中使用不同的 name 或 e-mail ,可以不要 --global 选项,但要注意的是,执行命令时必须要在仓库里面。我们发现,当前目录下多了⼀个 .git 的隐藏文件, .git 目录是 Git 来跟踪管理仓库的,不要手动修改这个目录里面的文件,不然改乱了,就把 Git 仓库给破坏了。所以我们在工作区中新建一个文件并不是在仓库中新建了一个文件,想要仓库可以管理这个文件还需要执行 add 和 commit 操作。
2025-01-08 10:00:00
899
原创 【Git原理与使用】通过实际操作了解如何在仓库添加文件和维护修改的文件
需要说明的是,我们看到的一大串类似 23807c5...56eed6 的是每次提交的 commit id (版本 号),Git 的 commit id 不是1,2,3……比如你新增了一行,这就是⼀个修改,删除了一行,也是⼀个修改,更改了某些字符, 也是⼀个修改,删了⼀些又加了⼀些,也是⼀个修改,甚至创建⼀个新文件,也算⼀个修改。我们只知道文件被修改了,如果能知道具体哪些地方被修改了,就更好了。可见我们对文件的修改被Git记录下来了,这样每次都把可以保存我们对文件的修改,这样就可以做到版本控制了!
2025-01-08 10:00:00
936
原创 【优选算法---归并排序衍生题目】剑指offer51---数组中的逆序对、计算右侧小于当前元素的个数、翻转对
剑指offer51---数组中的逆序对计算右侧小于当前元素的个数翻转对
2024-12-22 16:20:31
1352
10
原创 【优选算法---分治】快速排序三路划分(颜色分类、快速排序、数组第K大的元素、数组中最小的K个元素)
快速排序三路划分的题目:颜色分类、快速排序、数组第K大的元素、数组中最小的K个元素
2024-12-18 14:10:40
1668
16
原创 【优选算法---前缀和】和为K的子数组、和可被K整除的子数组、连续数组、矩阵区域和
给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。给定一个整数数组nums和一个整数k,返回其中元素之和可被k整除的非空 子数组 的数目。子数组 是数组中 连续 的部分。给定一个二进制数组nums, 找到含有相同数量的0和1的最长连续子数组,并返回该子数组的长度。给你一个m x n的矩阵mat和一个整数k,请你返回一个矩阵answer,其中每个是所有满足下述条件的元素mat[r][c]的和:且(r, c)在矩阵内。
2024-12-16 11:46:07
1450
1
原创 【优选算法】位运算算法总结+例题讲解(判定字符串是否唯一、两整数之和、只出现一次的数组II、消失的两个数字)
常见位运算总结、判定字符串是否唯一、两整数之和、只出现一次的数组II、消失的两个数字
2024-12-15 21:08:43
836
1
原创 【优选算法】二分算法(在排序数组中查找元素的第一个和最后一个位置,寻找峰值,寻找排序数组中的最小值)
提到二分我们可能都会想起二分查找,二分查找要求待查找的数组是有序的,与我们今天讲的二分算法不同,并不是数组元素严格按照有序排列才可以使用二分算法,只要数组中有一个点可以将数组分为两个部分,即存在“二段性”,就可以使用二分算法解决。
2024-12-15 18:05:37
1224
原创 【优选算法-滑动窗口】找到字符串中所有字母异位词、串联所有单词的子串、最小覆盖子串
找到字符串中所有字母异位词、串联所有单词的子串、最小覆盖子串
2024-12-10 11:07:48
1361
1
原创 【优选算法-滑动窗口】长度最小的子数组、无重复字符的最长子串、最大连续1的个数、将x减为0的最小操作数、水果成篮
给定一个二进制数组nums和一个整数k,假设最多可以翻转k个0,则返回执行操作后数组中连续1的最大个数。不用想着翻转元素,这样反而会把题目搞复杂,转变一下思路,这个题目就是找一个0的个数不大于k个的连续区间的最大长度,同样的在一段连续区间上操作,可以采用滑动窗口。定义一个变量num用于记录窗口中0的个数,每次让nums[right]入窗口,如果他的值是0的话,就让num++,如果num>k,就从左边出窗口,直到 num
2024-12-10 09:49:29
629
原创 C++项目---- 高并发内存池(项目解析与源代码)
我们写的这个高并发内存池是google公司开源的一个叫tcmalloc的项目,tcmalloc全称 Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数如malloc、free,它的知名度也是非常高的,不少公司都在用它,甚至Go语言直接用它做了自己内存分配器。这个项目是把tcmalloc最核心的框架简化后拿出来,模拟实现出一个自己的高并发内存池,目的就是学习tcamlloc的精华,通过这个项目的实现学习C++高手的设计思路。
2024-12-05 09:00:00
6240
1
原创 [Mysql从入门到精通] 一篇文章让你了解-索引
在对于数据库进行操作时,我们免不了需要查询一些信息,如果我们面对的是一个拥有海量数据的表,如果简单的进行线性一条一条的查找,那查询效率是非常低的,而索引可以提高数据库的性能。索引是物美价廉的东西了,不用加内存,不用改程序,不用调sql,只要执行正确的 create index ,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个 海量数据的检索速度。
2024-11-20 16:40:09
1070
1
原创 [Mysql从入门到精通] 一篇文章让你了解Mysql--事务管理
我们以售票的情景举例,买票分为两个步骤,先检查是否还有票,在买票,现在假设从西安到兰州的火车票还存在一张,当一个客户端检测完还有票,准备买票但是还没有买时(准备执行票数--的操作),另一个客户端此时也想买票,由于上一个客户端此时还没有让票数减为0,他一可以买票,这样就出问题了,一张票被卖给了两个人,这就造成了数据库数据不一致的问题,这个问题类似于多线程同时访问临界资源。
2024-11-20 07:15:00
1003
原创 五种IO模型与阻塞IO
在网络中通信的本质其实是网络中的两台主机的进程间进行通信,而进程通信的本质就是IO。IO分为输入(input)和输出(output)站在进程的角度讲,进程出去数据为输出,外部数据进入进程为输入站在内存的角度讲,OS的数据流入硬件为输入,硬件的数据流入OS为输出通常我们进行IO要使用的recv、send、read、write等函数,他们的工作其实分为两步等+拷贝数据。
2024-10-06 10:45:09
928
原创 [网络]抓包工具介绍 tcpdump
如果没有安装,可以使用包管理器 进行安装。注意:-i any 指定捕获所有网络接口上的数据包,tcp 指定捕获 TCP 协议的数据包。例如,要捕获端口号为 80 的 TCP 报文(通常是HTTP 请求),可以使用以下命令。pcap 后缀的文件通常与 PCAP(Packet Capture)文件格式相关,这是一 种用于捕获网络数据包的文件格式。这将把捕获到的 HTTP 流量保存到名为 data.pcap 的文件中。使用 -w 选项可以将捕获的数据包保存到文件中,以便后续分析。
2024-09-30 16:39:42
2513
2
原创 【网络】手动部署内网穿透(超详细教程)
注意8888端口号是用于frp服务端与客户端进行连接的,而8080端口号是在frp的连接建立好后推送给服务器的,目的是让其在新建一个套接字,使服务器的8080端口号与虚拟机中的22号端口号构建映射,这样当别的主机访问服务器的8080端口号,服务器就会把请求直接推送给虚拟机的22号端口号(因为要验证ssh,所以设置为了22)首先我们在服务器中打开解压好的文件,打开frps.toml配置文件,里面有一个端口号默认为7000,我们可以自行修改,这个端口号是给frpc客户端看的,用于建立frp之间的连接。
2024-09-29 20:55:53
3580
1
原创 [网络]数据链路层-MAC帧与ARP协议
当两台主机在进行跨网络通信时,发送方可以根据目的IP找到目的主机所在的子网路由器,但是仅仅知道目的主机的IP地址与端口号,不知道目的主机的硬件地址(MAC地址),由于数据帧的传输是在数据链路层进行的,因此必须知道目标设备的MAC地址才能正确发送数据。当主机收到MAC帧后,会根据MAC帧当中的目的地址来判断该MAC帧是否是发给自己的,如果是发送给自己的会对其进行CRC校验,如果校验成功则会根据该MAC帧的帧协议类型,将该MAC交付给对应的上层协议进行处理,如果不是发送给自己的则在数据链路层直接将数据丢弃。
2024-09-27 07:30:00
2507
1
原创 【网络】传输层协议TCP
为什么是四次挥手,不能向三次握手一样采用捎带应答,称为三次挥手吗?四次挥手主要是因为TCP是全双工通信协议,即数据可以在两个方向上同时传输。在断开连接时,需要确保两个方向上的数据传输都已经被正确处理和确认,以避免数据丢失或连接状态不一致的问题。当客户端数据发送完成申请断开连接时,服务器会无条件同意,但是不能采用捎带应答的方式向客户端发送FIN请求,因为此时服务端可能还有数据要发送给客户端,只有当服务器的数据全部发送完成时才会向客户端发送FIN请求断开连接。
2024-09-18 15:47:10
1660
4
原创 【网络】传输层协议UDP
UDP存在缓冲区的意义是他可以保存一些报文,除了上层正在处理的报文外,OS可能还会不断地从硬件读取报文,所以有的报文可能正在被处理,有的报文可能需要放到缓冲区中,并且有的报文需要向上交付,有的需要向下交付,总之OS内部可能同时存在许多的报文,那OS就需要管理这些报文,那如何管理呢?UDP的报头是固定长度的,分为四部分,每部分16位一共8个字节,数据报前8个字节就是报头,而数据报的总长度我们是知道的,剩下的就是有效载荷的长度。"源 IP", "源端口号", "目的 IP", "目的端口号", "协议号"
2024-09-13 16:33:17
1573
原创 [网络]HTTP协议 Cookie与Session
HTTP Cookie(也称为 Web Cookie、浏览器 Cookie 或简称 Cookie)是服务器发送到 用户浏览器并保存在浏览器上的一小块数据,它会在浏览器之后向同一服务器再次发 起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等。HTTP Session 是服务器用来跟踪用户与服务器交互期间用户状态的机制。由于 HTTP 协议是无状态的(每个请求都是独立的),因此服务器需要通过 Session 来记住用户的信息。
2024-09-07 08:08:11
1567
1
原创 HTTPS协议原理
HTTP协议是用于超文本传输的应用层协议,但是HTTP协议在数据传输时,内容都是文本式的明文传输,这就导致传输一些用户个人信息时可能会造成信息泄露。HTTPS协议就是在HTTP协议的基础上添加了一个加密层(TLS(传输层安全)和SSL(安全套接字层)),这个加密层也属于应用层,在进行数据传输时需要先将数据进过加密层进行加密,在发送给对方,对方接收到数据再进过加密层进行解密,就得到了对应的信息。数字指纹(数据摘要),其基本原理是利用单向散列函数(Hash 函数)对信息进行运算, 生成一串固定长度的数字摘要。
2024-09-05 16:29:00
861
1
原创 应用层协议Http
在进行网络通信时,应用层协议一般都是程序员自己写的,但是有一些大佬其实已经定义出了一些现成的应用层协议,例如:HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、POP3(邮局协议版本3)、IMAP(Internet邮件访问协议)、DNS(域名系统)、SNMP(简单网络管理协议)、DHCP(动态主机配置协议)等等HTTP 协议是客户端与服务器之间通信的基础。它规定了客户端(通常是浏览器)和服务器之间交换数据(尤其是超文本)的格式和方式。
2024-09-04 10:33:02
1243
1
原创 Linux-进程间关系与守护进程
守护进程(Daemon Process)是在Unix和类Unix操作系统(如Linux)中运行的一种特殊类型的进程。它们通常在系统启动时自动启动,并在后台运行,执行一些诸如监控或管理其他进程、系统服务、网络服务等任务。
2024-08-20 13:32:58
1266
2
原创 网络版计算器(理解协议与序列化与反序列化)
Jsoncpp 是一个用于处理 JSON 数据的 C++ 库。它提供了将 JSON 数据序列化为字 符串以及从字符串反序列化为 C++ 数据结构的功能。Jsoncpp 是开源的,广泛用于各 种需要处理 JSON 数据的 C++ 项目中。
2024-08-18 17:59:49
951
1
原创 C++类型转换问题
我们执行上述代码,会发现结果为 3 1,这是因为 i 定义的是常量属性,编译器认为他不会被修改,为了后续方便获取 i 的值可能将 i 的值直接放到寄存器里了,而指针p获取的是内存里的值,直接获取i是获取的寄存器里的值,所以才会出现不同,这时我们就需要再i的前面加上volatile关键字,让编译器不要对i进行优化,获取值直接到内存中找。一般情况我们认为父类对象的指针/引用是不能转换为子类的,因为父类对象中可能不存在子类的一些成员,会造成访问错误,但是父类对象的指针/引用其实存在两种情况、
2024-08-11 21:57:00
644
1
数据库工具,根据表结构文档生成创建表sql.zip
2024-01-05
贪吃蛇游戏(C语言实现)
2024-01-13
经典编程书籍大全,涵盖:计算机系统与网络.zip
2024-01-05
算法与数据结构等 - 知识荟萃 「长期更新中」【欢迎 watch,有兴趣点个 star,千万别 fork !】.zip
2024-01-05
农业领域知识图谱的构建,包括数据爬取(百度百科)、数据分类.zip
2024-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅