- 博客(61)
- 收藏
- 关注
原创 linux三剑客
方法一:-v varname=value 变量名区分字符大小写。方法二:在program中直接定义方法1.变量外面的引号可以是单引号也可以是双引号方法2.变量外面的引号必须是双引号如果我们想定义多个变量用;号隔开即可如果你希望变量中间没有空格,则用空格隔开,逗号“,”会被识别为分隔符。
2025-09-09 20:56:29
857
原创 shell函数+数组+运算+符号+交互
针对方案1,我们还可以用setsid命令实现,原理与4.1是一样的,setid是直接将进程的父pid设置成1,即让运行的进程归属于init的子进程,那么除非init结束,该子进程才会结束,当前进程所在的终端结束后并不会影响进程的运行。一种是标准信号,编号1-31,称为非可靠信号(非实时),不支持队列,信号可能会丢失,比如发送多次相同的信号,进程只能收到一次,如果第一个信号没有处理完,第二个信号将会丢弃。另一种是扩展信号,编号32-64,称为可靠信号(实时),支持队列,发多少次进程就可以收到多少次。
2025-09-09 20:54:58
989
原创 shell的循环语句
特点:根据给予的不同条件执行不同的代码块case $var in 定义变量;var代表是变量名pattern 1) 模式1;用 | 分割多个模式,相当于orcommand1 需要执行的语句;;两个分号代表命令结束pattern 2)command2;;;*) default,不满足以上模式,默认执行*)下面的语句command4;;esac esac表示case语句结束条件为真就进入循环;条件为假就退出循环,一般应用在未知循环次数的环境。
2025-09-02 21:10:29
922
原创 shell快速入门
在 shell 脚本中, 定义变量时,变量名不加美元符号注意 :变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线。不能使用标点符号。不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。或以上语句将 /etc 下目录的文件名循环出来。select 选择语句#select 是一个类似于 for 循环的语句。
2025-09-02 17:47:39
781
原创 redis集群模式
一般情况下,哨兵模式就可以满足需求,但是当数据量很大时,我们就需要对单台redis上的数据进行分片,这时候就有了redis集群模式(cluster)。:默认redis官方在集群模式当中内置了16384个槽。0-16383之间:在redis集群中任意节点查询或存储修改数据时,先通过哈希槽运算,未命中节点,则会重新计算查找节点。多个主从之间,连接是共享的,多个redis节点网络互联工作模式:通过哈希取模:默认redis官方在集群模式当中内置了16384个槽。0-16383之间先求余,在按照余去存储。
2025-08-27 15:11:01
556
原创 redis哨兵模式
关闭保护模式,使外网能访问。port 26379#修改端口。三份文件分别不同。#修改为后台运行。#指定不同pid文件,注意文件夹不存在自己要新建。logfile ""#配置哨兵日志文件。dir "/tmp"#配置哨兵工作路径。#配置哨兵需要监控的主节点ip和端口,2表示哨兵数(quorum)#配置哨兵连接主节点的认证密码。(主节点配置的requirepass)。#配置多少毫秒后没收到主节点的反馈,则主观认为主节点down了。
2025-08-26 20:18:32
1107
原创 MySQL的高可用+MHA
即,是一套优秀的,由日本 DeNA 公司 youshimaton 开发,主要用于保障 MySQL 数据库在主服务器出现故障时,能快速进行主从切换,减少数据库服务中断时间。:通过定期监控主库状态,当主库出现故障(如宕机、网络中断等)时,能自动识别并在从库中选择最合适的节点提升为新主库,整个过程无需人工干预。:在切换过程中,会尽量复制主库未同步到从库的binlog日志,最大程度减少数据丢失;支持GTID(全局事务标识),简化binlog定位与同步流程。
2025-08-21 12:10:08
1818
原创 mysql数据恢复
是一款针对 MySQL 数据库的 binlog 解析工具,主要用于从 MySQL 的二进制日志(binlog)中提取数据变更信息(如插入、更新、删除操作),并能生成对应的 SQL 语句,也支持将解析结果输出为其他格式(如 CSV)。它在数据同步、数据恢复、审计追踪等场景中较为常用。把bin-log日志进行解析,转化为sql语句,进行数据恢复。
2025-08-20 20:41:20
870
原创 mycat分库分表实验
当单表数据量达到千万 / 亿级时,查询和写入性能会急剧下降。数据分散存储:将一张大表拆分成多个小表,分散到不同数据库节点,降低单库单表压力。路由定位:根据分片键(如iduser_id)计算数据存储的位置,确保查询时能快速定位到目标库表。适配业务场景:不同业务的数据特点(如用户 ID 均匀分布、订单按时间增长)需要不同的分片策略,避免数据倾斜(某一分片数据过多)。拆:将大表分散到多个物理库表,突破存储和性能瓶颈。查:通过分片键快速定位数据位置,避免全表扫描。实际使用时需根据分片键类型。
2025-08-19 21:32:14
861
原创 redis主从复制
如果发生机器宕机(主板烧坏、硬盘损坏、内存损坏等),短时间内我们也无法修复,我们就会考虑将redis迁移到另外一台机器上,并且还要考虑数据同步问题。Master可以拥有多个slave;多个slave可以连接同一个Master外,还可以连接到其他的slave;主从复制不会阻塞Master,在主从复制时,Master可以处理client请求。
2025-08-18 15:13:35
626
原创 redis集群介绍
主从模式是三种模式中最简单的,在主从复制中,数据库分为2类:主数据库和从数据库主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库从数据库一般都是只读的,并且接收主数据库同步过来的数据一个master可以拥有多个slave,但是一个slave只能对应一个masterslave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来。
2025-08-17 20:10:38
1113
原创 redis的数据类型
上一章我也简单的介绍了一下,数据类型,这张我们详细进行讲解一下。(有的内容可能会和上一章有重复,大家可以直接跳到自己想看的地方)
2025-08-15 16:19:31
2019
1
原创 mysql优化+日志
②Using index:使用索引列排序,建立索引时,默认会进行排序。默认情况下,联合索引都是默认升序。给需要排序的列添加单列或联合索引(多列索引)。①using filesort:全表扫描排序,读取满足条件的数据行,然后在排序缓冲区 sortbuffer 中完成排序操作,①尽量使用count(*):count(*)≈count(1)>count(主键)>count(字段)①覆盖索引:如果我们分页太多,越往后分页,效率会越低。(如是否使用索引、扫描了多少行数据、是否需要临时表等),是优化慢查询的关键手段。
2025-08-14 12:14:57
954
原创 Redis
它支持多种数据结构(如字符串、哈希、列表、集合等),并通过内存存储实现超高读写速度,同时提供持久化、集群、事务等功能,广泛用于缓存、会话存储、消息队列等场景。不仅仅支持简单的 key-value 类型数据,还支持:字符串、hash、列表、集合、有序集合,进入/usr/local/redis/bin目录,输入./redis-server。修改/usr/local/redis/etc/redis.conf文件。修改/usr/local/redis/etc/redis.conf文件。
2025-08-13 14:40:59
1212
原创 mysql锁+索引
9.位图索引(BITMAP INDEX) 位图索引不是 MySQL 的内置索引类型,但在某些数据库系统中(如 Oracle)有类似的实现,主要用于处理低基数(少量唯一值)的列。1)主键索引 :是数据库中一种特殊的索引,用于唯一标识表中的每一条记录。适合需要范围查询、排序、联合索引的场景,是关系型数据库(如 MySQL、PostgreSQL)的默认索引结构(如 InnoDB 的主键索引)。3.尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率。
2025-08-12 21:29:50
847
原创 mysql视图+存储引擎
视图view:是虚拟的表,通常用于简化复杂的查询,show tables 就可以看到,但是在/usr/local/mysql/data中并没有它的存在,因为它是虚拟的。视图中的数据来源于基表(基础表),基表发生变动,视图会受到影响。视图就是。视图中的数据是动态生成的。它是一条select语句的结果集。
2025-08-12 16:57:44
687
原创 mycat主从搭建
MySQL主从又叫Replication、AB复制。简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步。有这样几个关键点:1)MySQL主从是基于binlog,主上需开启binlog才能进行主从;2)主从过程大概有3个步骤;3)主将更改操作记录到binlog里;4)从将主的binlog事件(SQL语句) 同步本机上并记录在relaylog里;5)从根据relaylog里面的SQL语句按顺序执行。6.28.1.1。
2025-08-08 09:44:10
1153
原创 关于mycat2的配置文件介绍
这个配置文件主要是用来配置MyCAT的登录用户的,也就是我们连接8066这个端口的用户信息。这个是针对MyCAT的服务器的配置,一般情况下默认就行了,不用怎么配置。作用:使用序列号的分片表,对应的自增主键要在建表SQL中体现。作用:配置MyCAT里面和MySQL对应的逻辑表。作用:配置MyCAT连接后端的物理库的数据源。
2025-08-06 16:13:43
538
原创 关于分库分表的中间件MyCAT
使用MyCAT 2要安装JDK,因为MyCAT 是基于JDK1.8开发的。3.2安装JDK1.8# CentOS7# 测试安装,显示java版本则为安装成功3.3。
2025-08-06 15:58:22
890
原创 MyCAT的分库分表的介绍
简单的说就是,通过某种特定的条件,将我们存放在共一个数据库中的数据分散存放到多个数据库(主机)上,以达到分散单台设备负载的效果。分库:就是一个数据库分成多个数据库,部署到不同机器。分表:就是一个数据库表分成多个表。
2025-08-06 11:56:16
1001
原创 MySQL集群+分布式+ProxySQL实现读写分离
1、ProxySQL是一款开源的使用C++编写的MySQL集群代理中间件;2、用于在MySQL数据库和客户端之间进行负载均衡、查询缓存、故障转移和查询分发;3、它可以作为中间层插入到应用程序和数据库之间;4、特点是高效灵活,使用简单,并且性能是所有中间件中比较优秀的。5、在搭建好mysql的主从复制后,可以利用ProxySQL实现mysql数据库的读写分离;
2025-08-05 20:57:20
911
原创 mysql主从复制
mysqldump解决了mysql数据库的备份,它只是基于某个时间点做备份,无法解决实时备份的问题,为了解决mysql实时备份的问题,mysql官方推出了mysql主从备份机制,可以让用户通过设置mysql主从来实现数据库实时备份。1、MySQL服务器宕机怎么办,单点故障2、数据的安全通过多台机器实现一主多从的方式来实现数据备份,主服务器负责让用户读写数据,从服务器负责同步主服务器数据,也可以承担用户读的任务。至少两台机器。
2025-08-05 11:57:46
1181
原创 mysql日志
MySQL 日志除了用于发现错误之外,它在数据复制、数据恢复、操作审计、以及数据永久性和一致性方面都发挥着重要作用。学会如何查看和配置 MySQL 日志,将有效的提升您的数据库技能和快速解决问题的能力。二进制日志:记录更改数据的语句,用于数据同步和无损恢复;错误日志 :记录 MySQL 服务异常,用于解决服务器故障;通用查询日志:记录客户端连接发送给数据库的操作指令;慢查询日志:记录超过指定时间的查询语句,方便优化 SQL;中继日志:主从架构,从服务器读取中继日志同步主服务器数据;
2025-08-04 21:06:27
1021
原创 mysql索引
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示 :一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。索引是数据库中用来提高性能的最常用的工具。
2025-08-04 17:56:55
1071
原创 MySQL存储引擎
1.引擎就是类似发动机,之间没有好坏之分,只有合不合适;2.他是 mysql 数据库的核心,我们也需要在合适的场景选择合适的存储引擎;3.存储引擎就是存储数据、建立索引、更新、查询数据等技术的实现方式;4.存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型;5.我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB 是默认的MySQL 存储引擎。
2025-08-04 16:09:15
869
原创 mysql事务
事务是一组操作集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。注意:MySQL的事务默认自动提交的,也就是说,当执行完一条DML语句时,MySQL会立即隐式提交事务。什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB和BDB数据表类型事务的ACID原则 百度 ACID原子性(Atomic)
2025-08-03 20:01:40
700
原创 mysql管理和备份
一个 file_name.sql 放表结构文件,file_name.txt 放数据文件,注意这个数据文件不是 insert,需要 mysqlimport/source 导入,或者 load 批量插入。该 mysql 不是指 mysql 服务,而是指 mysql 的客户端工具。用来导入 mysqldump 导出的 file_name.txt 数据文件。用来备份数据库或者进行数据库的迁移,包含创建表、插入表、SQL 语句等。mysqldump 是MySQL自带的备份命令。
2025-08-03 15:33:28
381
原创 mysql中的用户权限
核心目标:通过技术手段和流程管控,实现权限精准分配、动态调整、全程可追溯。关键行动遵循最小权限原则,避免过度授权。建立角色体系,简化权限管理。定期审计,及时发现风险。结合工具和文档,提升管理效率。
2025-08-03 15:30:20
1164
原创 SQL语言
主键(PK)是表中唯一标识每条记录的字段(或多个字段的组合),作用是确保表中每条记录的唯一性,避免重复数据。一个表只能有一个主键(可以是单字段主键,也可以是多字段组合的复合主键)。主键字段不允许为 NULL,且值必须唯一。student表的id字段通常设为主键,确保每个学生有唯一标识:sqlid INT PRIMARY KEY, -- 主键外键(FK)是表中用于关联另一个表主键的字段,作用是建立两个表之间的关联关系,确保数据的一致性和完整性(尤其是引用完整性)。一个表可以有多个外键。
2025-08-01 15:47:56
960
原创 mysql的安装步骤
安装步骤1.下载软件包,安装依赖环境2.安装mysql服务器3.基础安装路径,创用户,与权限4.初始化5.添加环境变量,把服务放到开机自启里面6.启动mysql服务器7.获取初始密码并且修改。
2025-08-01 10:17:47
1393
原创 数据库基础概念
存储数据的仓库(DB)针对的专门管理软件:数据库管理系统DBMS对数据进行增删改查数据:对客观事物的记录,数字,文字,图形,符号,声音,视频信息:进行加工后的数据按照模型:关系模型,非关系模型部署:本地,云用途:oltp:在线事务处理。olap:在线分析处理。htap:混合架构:集中式,分布式,云原生介质:磁盘,内存根据数据的组织方式,数据库可分为两大主流类型:结构化数据:有格式,表格,每一列都有固定的格式和类型半结构数据:例如、html、xml、json。
2025-07-31 16:10:34
779
原创 linux进程管理
父进程:创建其他进程的“爸爸进程”(如你打开终端bash,它就是父进程)。子进程:被父进程创建的“宝宝进程”(如在终端里运行top,top就是子进程)。特点:开机自动启动,长期运行在后台,无终端界面(如系统服务)。常见例子sshd:允许远程连接(用ssh命令连服务器靠它)。httpd/nginx:Web服务器,负责响应网页请求。docker:Docker服务,管理容器运行。进程是“运行的程序”,PID是身份证,ps aux看状态,top实时查资源。后台任务加。
2025-07-30 16:21:10
683
原创 linux的日志管理
在 Linux/Unix 系统中,各类服务(如系统日志、应用程序、数据库等)会持续生成日志文件,若不加以管理,日志可能会占用大量磁盘空间,甚至导致磁盘满溢,影响系统正常运行。日志轮转(Log Rotation)是一种自动管理日志文件的机制,用于。 命令(用于旧版 SysVinit 系统,如 CentOS 6)。:将命令输出和错误信息丢弃,避免日志轮转时产生多余输出。 规则(记录敏感操作),确保系统稳定和安全。 配置(避免日志占满磁盘)和。
2025-07-30 16:11:42
1104
原创 ubuntu apt源报错?
一、网络连接方面1.网络不通畅(常见)简单来说就是你的虚拟机连不上网,这时候你应该检查自己的ip 是不是dhcp自动获取的,或者你的网络配置是否有误。2.:DNS 服务器配置错误或 DNS 服务器本身故障,无法将软件源的域名解析为正确的 IP 地址,就会出现类似(无法解析主机)的报错。比如将 DNS 设置为一个不可用的地址,或者当地 DNS 服务器遭受攻击、出现故障时,apt更新或安装操作就会因无法解析软件源域名而失败。
2025-07-28 20:19:23
2306
原创 ubuntu安装lamp可联网模式
装apache装mysql安装php验证:php?验证和mysql的连接// 创建连接 $conn = new mysqli($servername, $username, $password);// 检测连接 if ($conn->connect_error) { die("连接失败: ". $conn->connect_error);} echo "连接成功";?
2025-07-28 19:26:55
885
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅