- 博客(64)
- 收藏
- 关注
原创 Spring Boot 整合 Keycloak
本文介绍了如何如何设置了 Keycloak 服务器,以及如何在 Spring Boot 中使用 Spring Security OAuth2.0 结合 Keycloak 实现认证和授权。
2025-11-24 20:30:30
209
原创 PostgreSQL 向量扩展插件pgvector安装和使用
重新修改.bash_profile,配置PG_CONFIG和LD_LIBRARY_PATH,指定安装的postgresql 16.3版本。make编译调用的postgresql不是之前安装的 16.3,而是apt-get 安装的10.23版本。利用pgvector 前提是事先安装好postgresql,安装postgresql例可参考下文。make编译pgvector时无法识别安装的postgresql。安装的版本不是最新的版本而是10.23。pgvector的安装成功。
2025-11-24 19:13:16
180
原创 MySQL篇之对MySQL进行参数优化,提高MySQL性能
innodb_flush_log_at_trx_commit:控制事务提交时日志的刷新策略。tmp_table_size 和 max_heap_table_size 控制内存中临时表的最大大小。如果设置为 1,每次写入二进制日志都会同步到磁盘,保证事务的持久性,但会带来一定的性能开销。磁盘 I/O 是数据库性能的重要瓶颈,合理配置与磁盘相关的参数有助于减少磁盘访问次数,提高性能。下面是一些常用的查询优化参数。MySQL 的日志记录可以帮助我们在故障时进行诊断,但是过多的日志记录会增加系统的负担。
2025-11-24 15:12:07
627
原创 MySQL 教程(超详细,零基础可学、第一篇)
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 是开源的,目前隶属于 Oracle 旗下产品。MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL 使用标准的 SQL 数据语言形式。MySQL 可以运行于多个系统上,并且支持多种语言。
2025-11-24 14:01:50
377
原创 Java进阶 主键和外键的使用区别
主键,primary key:是被挑选出来,作表的惟一标识的候选关键字,一个表只有一个主键。比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。注意,主键可以是一个字段,也可以是多个字段组合成的多字段联合主键#将name和deptId字段组合成为表temp的多字段组合主键外键:外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
2025-11-24 12:46:46
158
原创 PHP搭建开发环境(Windows系统)
要搭建一个完整的PHP动态网站,离不开操作系统、Web服务器、数据库、和PHP软件。虽然有不错方便的方式,比如使用phpstudio等等等等许多面板都是非常快速不错的方式,但是这里是教会大家如何配置而不只是依赖别人整合好的面板软件,有时就会发挥出用处。以下是本文章的所采用的大概配置。
2025-11-23 04:44:39
496
原创 mysql的主从配置
MySQL 主从又叫做 Replication、AB 复制。简单讲就是 A 和 B 两台机器做主从后,在 A 上写数据,另外一台 B 也会跟着写数据,两者数据实时同步的。MySQL 主从是基于 binlog 的,主上须开启 binlog 才能进行主从。主从过程大致有 3 个步骤:1)主将更改操作记录到 binlog 里2)从将主的 binlog 事件(sql 语句)同步到从本机上并记录在 relaylog里中继日志3)从根据 relaylog 里面的 sql 语句按顺序执行。
2025-11-23 03:33:37
718
原创 MYSQL 创建索引
第一次使用删除语句报错的原因是:由于自增列的错误,所以下面是先删除了自增属性,然后重新删除主键。创建唯一索引的方式有三种,和上面添加主键索引大致上是相同的,故只给出对应的代码部分。创建符合索引与创建普通索引语法相同,只不过是指定多个列,列与列之间用逗号隔开。其中:主键索引用PRI表示,唯一索引用UMI表示,普通索引用MUL表示。普通索引的三种创建方式和上面两种差不多,不过还是有一些不同的。查看索引的三种方式,在上面都有提到,现在可以进行一下总结。index 是创建索引的关键字,括号里是索引列。
2025-11-23 02:24:32
239
原创 Java语法进阶
一、Object类、常用API二、Collection、泛型三、List、Set、数据结构、Collections四、Map与斗地主案例五、异常、线程目标:1、说出进程的概念2、说出线程的概念3、能够理解并发与并行的区别4、能够开启新线程4.1 并发与并行4.2 线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。进程:线程是进程
2025-11-23 01:13:31
661
原创 Spring Boot 3.4 正式发布,结构化日志!
通过将注入到@Bean方法中来定义动态属性的功能已被弃用,现在默认会导致失败。替代方法是实现一个单独的@Bean方法,返回一个,此方法应注入属性值来源的容器。这种方式解决了一些容器生命周期问题,并确保属性值来源的容器在属性被使用之前已经启动。如果仍希望注入(需承担可能的生命周期问题),可以将设置为warn或allow。前者会记录警告但允许注入,后者则会完全恢复 Spring Boot 3.3 的行为。在类型匹配时,基于 Bean 的条件现在会忽略非默认候选 Bean。
2025-11-21 15:08:25
1021
原创 PHP使用Redis实战实录2:Redis扩展方法和PHP连接Redis的多种方案
PHP使用Redis实战实录系列PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP:出现上面提示,代表可以正常使用PHP操作Redis。Redis扩展提供了一系列方法用于与Redis服务器进行交互。以下是一些常用的对象可用的方法:连接和关闭连接:数据操作:列表操作:哈希操作:集合操作:这只是Redis提供的一些常见操作方法的示例列表,还有更多其他方法可供使用。具体可以参考Redis扩展的文档或官方网站来了解更多关于Red
2025-11-21 13:59:11
823
原创 mysql的主从配置
MySQL 主从又叫做 Replication、AB 复制。简单讲就是 A 和 B 两台机器做主从后,在 A 上写数据,另外一台 B 也会跟着写数据,两者数据实时同步的。MySQL 主从是基于 binlog 的,主上须开启 binlog 才能进行主从。主从过程大致有 3 个步骤:1)主将更改操作记录到 binlog 里2)从将主的 binlog 事件(sql 语句)同步到从本机上并记录在 relaylog里中继日志3)从根据 relaylog 里面的 sql 语句按顺序执行。
2025-11-21 12:48:44
916
原创 MYSQL 创建索引
第一次使用删除语句报错的原因是:由于自增列的错误,所以下面是先删除了自增属性,然后重新删除主键。创建唯一索引的方式有三种,和上面添加主键索引大致上是相同的,故只给出对应的代码部分。创建符合索引与创建普通索引语法相同,只不过是指定多个列,列与列之间用逗号隔开。其中:主键索引用PRI表示,唯一索引用UMI表示,普通索引用MUL表示。普通索引的三种创建方式和上面两种差不多,不过还是有一些不同的。查看索引的三种方式,在上面都有提到,现在可以进行一下总结。index 是创建索引的关键字,括号里是索引列。
2025-11-21 11:40:04
331
原创 Java语法进阶
一、Object类、常用API二、Collection、泛型三、List、Set、数据结构、Collections四、Map与斗地主案例五、异常、线程目标:1、说出进程的概念2、说出线程的概念3、能够理解并发与并行的区别4、能够开启新线程4.1 并发与并行4.2 线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。进程:线程是进程
2025-11-21 10:30:28
362
原创 Redis如何设置密码
为什么redis要设置密码?内网环境可以不设置密码,但是个人服务器,以及线上公网服务器就有必要设置密码了。昨天我查看了一下minio的redis事件通知,查看redis的key时发现多了几个奇怪的key。然后我猜想应该是挖矿病毒。如下面所示:这样就将定时任务和脚本注入到了我们机器当中,就会开始执行 init.sh 脚本backup1 "backup2 "backup3 "backup4 "公网的redis一定要设置密码阿,不要不设置密码,设置密码就一个指令,非常容易,可不要偷懒噢。
2025-11-20 16:32:02
914
原创 python的sql解析库-sqlparse
sqlparse 是一个 Python 库,是一个用于 Python 的非验证 SQL 解析器, 用于解析 SQL 语句并提供一个简单的 API 来访问解析后的 SQL 结构。可以帮助解析复杂的 SQL 查询,提取信息,或者对 SQL 语句进行一些基本的分析和操作。
2025-11-20 16:04:35
524
原创 Nodemailer使用教程:在Node.js中发送电子邮件
Nodemailer是Node.js平台上最流行的电子邮件发送库,它提供了一个简单而强大的解决方案,支持Unicode内容、HTML内容、附件、图片嵌入等功能。SMTP(Simple Mail Transfer Protocol,简单邮件传输协议) 是一个在互联网上发送电子邮件的标准协议。
2025-11-20 15:37:10
543
原创 nginx-静态资源部署
静态资源通常指的是那些不会随着用户请求或服务器状态而变化的文件。这些资源包括图片、视频、音频、HTML文件、CSS文件、JavaScript文件、软件安装包、APK文件以及压缩包文件等。一旦这些资源被上传到服务器上,它们的内容就是固定的,服务器会直接返回这些资源的内容给客户端,客户端只需进行渲染或下载即可。同源策略: 当协议,域名(服务名),端口号相同时则为同源。当使用的URL不同源时,即产生跨域问题。
2025-11-20 15:10:14
795
原创 深入了解 MySQL 中的 JSON_CONTAINS
函数用于检查一个 JSON 文档中是否包含另一个 JSON 文档。target: 目标 JSON 文档,即我们要检查的文档。candidate: 候选 JSON 文档,即我们要查找的值或对象。path: 可选参数,指定一个 JSON 路径,用于查找特定的节点。是 MySQL 提供的一个强大工具,可以在 JSON 数据中快速查找和匹配特定的值或对象。通过灵活地使用这项功能,可以极大地增强应用程序的数据处理能力和灵活性。随着应用场景的不断扩展,理解和利用 MySQL 中的 JSON 功能将变得愈发重要。
2025-11-19 11:43:20
271
原创 从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
本文不仅细化了每一个步骤,实现了从0到1部署Tomcat和添加servlet。还针对IDEA2024版和以前的版本在部署上的区别,做了详细介绍,尤其是add framework support部分。与此同时,针对控制台中文乱码问题,本文也给出了详细解决方案。
2025-11-18 15:48:06
288
原创 node.js卸载并重新安装(超详细图文步骤)
1、Node.js下载网址2、一路点击next3、安装到本地位置,按需求自行更换安装路径(建议不做修改默认C盘)4、不需要选择或更换,默认安装,直接next,它会自动添加系统变量。5、点击Install,进入如下图所示的Node.js install进度界面6、出现以下界面安装完成7、我们使用Windows+R快捷键,输入cmd进入命令行界面,验证安装是否成功:8、以上node的环境已经安装完成,npm包管理器也有了。
2025-11-17 22:53:52
203
原创 Mysql 驱动程序
MySQL 驱动程序是连接应用程序与 MySQL 数据库的重要组件。根据不同的编程语言和应用场景,MySQL 提供了多种驱动程序,包括 MySQL Connector/J(Java)、MySQL Connector/Python(Python)、MySQL Connector/NET(.NET)、MySQL Connector/C++(C++)、MySQL ODBC 驱动程序等。这些驱动程序简化了数据库操作,提高了性能,并增强了安全性。
2025-11-17 20:59:37
771
原创 如何在 Ubuntu 22.04 上安装 MySQL
MySQL 是开发人员最常用的数据库之一,因为它在功能、性能和易用性之间取得了平衡,提供了高性能、可扩展性、安全性、灵活性和低成本。在本教程中,我们将向您展示如何在七个步骤中在 Ubuntu 22.04 上安装 MySQL。我们包括安装、配置、保护 MySQL 以及创建新用户。MySQL 是最流行的开源数据库管理系统之一。它是著名的 LAMP(Linux、Apache、MySQL、PHP)堆栈的组成部分,并为主要的 Web 应用程序和平台提供了近二十年的支持。
2025-11-16 21:53:43
757
原创 启动springboot项目时报错Web server failed to start. Port 8080 was already in use
在Windows上,您可以使用命令提示符(cmd)来检查端口的使用情况。点击菜单栏 -> 右键 - > 任务管理器 -> 详细信息,根据PID排序找到PID为10728的进程,选择后点击结束任务。【1】关闭该进程的方法一:如果查找到了占用端口,可以通过PID,去任务管理器找到对应的进程,然后暴力地直接杀了这个进程。报错原因:这个错误表明端口1717已经被其他程序占用,导致我们的的Web服务器无法在这个端口上启动。找到对应的PID后,我们可以使用任务管理器来结束该进程,或者在CMD中使用。
2025-11-16 21:24:54
408
原创 Spring cloud alibaba集成nacos 报错:[Nacos Config] config[dataId=xxx, group=DEFAULT_GROUP] is empty 解决
需要注意的是,在使用Nacos 2.x版本时,需要确保这两个端口都已经在服务器上开放,并且在安全组和防火墙中也相应地开放这些端口,以保证Nacos能够正常工作。如果你的Spring Boot项目正在使用Nacos,也需要将项目中的server-adr端口改成9848,以适配新版本的端口变化。Nacos在升级到2.x版本后,对端口的使用进行了调整,新增了端口9848作为管理端口(Management Port),而原有的8848端口继续用于服务发现和配置管理。3,发现配置均正常,那么需要详细去判断一下。
2025-11-15 19:50:10
264
原创 Spring Boot 整合 log4j2 日志配置教程
在项目推进中,如果说第一件事是搭建 Spring 框架的话,那么第二件事情就是在 Sring 基础上搭建日志框架,此篇文章是博主在学习过程中使用 Spring Boot 搭建项目时整合 Log4j2 日志的总结共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF机制:如果一条日志信息的级别大于等于配置文件的级别,就记录All:最低等级的,用于打开所有日志记录。
2025-11-15 19:23:18
792
原创 查看 nginx 是否已经启动
如果 Nginx 已经配置为提供默认页面,并且您可以通过浏览器访问服务器,那么您可以尝试访问服务器的 IP 地址或域名。如果 Nginx 正在运行并且配置正确,您应该会看到 Nginx 的默认欢迎页面。另外,如果您在安装 Nginx 时更改了默认配置或使用了不同的端口,那么您可能需要相应地调整检查方法。如果 Nginx 正在监听某个端口,您应该会看到与该端口相关的 Nginx 信息。如果 Nginx 正在运行,您应该会看到与 Nginx 相关的进程信息。命令来检查这些端口是否被 Nginx 占用。
2025-11-14 17:04:01
311
原创 开启mysql的binlog日志
命令,您需要在操作系统的命令行界面(例如Windows的命令提示符或PowerShell,Linux或macOS的终端)中执行,而不是在MySQL命令行客户端或任何SQL管理工具中。加一行log-bin=“C:/ProgramData/MySQL/MySQL Server 5.7/logs/log-bin”指定了二进制日志索引文件的名称,该文件记录了所有当前活跃和旧的binlog文件的位置。指定了服务器将保留的最大binlog文件数量。指定了binlog文件在被自动删除前可以保留的天数。
2025-11-14 16:37:32
303
原创 Spring Boot实现定时任务
定时任务是指在预定的时间点或按照特定的时间间隔自动执行的任务。定时任务的应用场景:操作系统维护:例如,定期清理临时文件、更新系统补丁等。数据备份:定期对重要数据进行备份,以防数据丢失。自动化测试:例如,在每天凌晨自动运行软件测试脚本。网站维护:比如定时发布新内容、定时发送邮件提醒等。数据分析:例如,定期汇总和分析业务数据,生成报告。
2025-11-13 21:43:04
883
原创 Spring bean名称
当有多个相同类型的实现时,命名一个Spring bean非常有用。这是因为 bean 没有唯一的名称,那么注入 bean 对 Spring 来说是不明确的。通过控制 bean 的命名,可以告诉 Spring 要将哪个 bean 注入目标对象。当需要在同一个 Spring 上下文中创建多个相同类型的 bean 时,可以为这些 bean 提供自定义名称并使用这些名称来引用它们。这一次,Spring 将创建名为“ myBean”的MyCustomComponent类型的 bean。
2025-11-13 21:12:41
321
原创 解决ideatomcatUnrecognized option--add-opens=java.basejava.lang=ALL-UNNAMEDErrorCould not create th
因此,当Tomcat 10尝试使用这个参数时,JDK 1.8无法识别并抛出了错误。找到Tomcat的启动脚本(例如catalina.sh或catalina.bat),找到JVM参数部分,并移除或注释掉与–add-opens相关的行。请注意,如果你选择升级JDK版本,确保与Tomcat版本兼容,并注意可能存在的其他依赖性问题。另外,如果你不确定如何修改Tomcat配置或升级JDK版本,请参考官方文档或寻求专业帮助。打开Tomcat的启动脚本(例如catalina.sh或catalina.bat)。
2025-11-12 21:53:02
676
原创 查看 nginx 是否已经启动
如果 Nginx 已经配置为提供默认页面,并且您可以通过浏览器访问服务器,那么您可以尝试访问服务器的 IP 地址或域名。如果 Nginx 正在运行并且配置正确,您应该会看到 Nginx 的默认欢迎页面。另外,如果您在安装 Nginx 时更改了默认配置或使用了不同的端口,那么您可能需要相应地调整检查方法。如果 Nginx 正在监听某个端口,您应该会看到与该端口相关的 Nginx 信息。如果 Nginx 正在运行,您应该会看到与 Nginx 相关的进程信息。命令来检查这些端口是否被 Nginx 占用。
2025-11-12 21:22:33
121
原创 对Docker部署的MySQL中的数据进行备份恢复
使用Docker部署的MySQL进行备份/恢复与传统方式类似,但需要考虑Docker容器的特殊性。以下是详细的步骤,帮助你在Docker环境中进行MySQL的全量备份。
2025-11-12 18:23:51
408
原创 在Mysql环境下对数据进行增删改查
右外连接:select 字段 from 表名1 right join 表名2 on 两个表连接的条件 [where 条件];左外连接:select 字段 from 表名1 left join 表名2 on 两个表连接的条件 [where 条件];隐式内连接:select 字段 from 表名1,表名2 where 两个表连接的条件 [and 其他查询的条件];------------根据条件进行删除表里的数据。----------% _---------清空表里的数据,但表仍然存在,而且不能加条件。
2025-11-12 17:31:28
894
原创 Spring Data JDBC 详解
spring-data-jdbc的方便好用、可扩展性进一步显现出来了,如果想分页查询的话,Spring-data-jdbc提供了另外一个接口PagingAndSortingRepository,也可以使用@Query()注解支持原生的sql写入,参数使用过@Param()注入,接收的时候按照顺序接收,但要用 :id来标记接收对应的参数。简单总结就是: 没有拦截在和缓存,每次执行完的SQL得到的就是一个指定想要的完整实体,没有关联的查询或更新操作,没有session, 更简单、高效。
2025-11-11 18:56:19
887
原创 Spring Boot 热部署
在开发过程中,通常会对一段业务代码不断地修改测试,在修改之后往往需要重启服务,有些服务需要加载很久才能启动成功,这种不必要的重复操作极大地降低了程序开发效率。为此,Spring Boot框架专门提供了进行热部署的依赖启动器,用于进行项目热部署,而无需手动重启项目。
2025-11-11 18:25:03
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅