使用Docker搭建MySql的主从同步+ShardingSphere搭建Mysql的读写分离

参考课程

尚硅谷ShardingSphere5实战教程(快速入门掌握核心)_哔哩哔哩_bilibili

主服务器

创建容器

docker run -d \

-p 3306:3306 \

-v /kira/mysql/master/conf:/etc/mysql/conf.d \

-v /kira/mysql/master/data:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=382673 \

--name mysql-kira-master \

mysql:8.0.29

修改配置文件

默认模式下,binlog日志是自动开启的

vim /kira/mysql/master/conf/my.cnf

配置文件里面的内容

[mysqld]

# 服务器唯一id,默认值1

server-id=1

# 设置日志格式,默认值ROW

binlog_format=STATEMENT

# 二进制日志名,默认binlog

# log-bin=binlog

# 设置需要复制的数据库,默认复制全部数据库

#binlog-do-db=mytestdb

# 设置不需要复制的数据库

#binlog-ignore-db=mysql

#binlog-ignore-db=infomation_schema

重启容器

docker restart mysql-kira-master

进入容器内部

#进入容器:env LANG=C.UTF-8 避免容器中显示中文乱码

docker exec -it mysql-kira-master env LANG=C.UTF-8 /bin/bash

#进入容器内的mysql命令行

mysql -u root -p

#修改默认密码校验方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '382673';

创建用户,方便从库连接的时候使用该用户连接

-- 创建slave用户

CREATE USER 'KIRA'@'%';

-- 设置密码

ALTER USER 'KIRA'@'%' IDENTIFIED BY '382673';

-- 授予复制权限

GRANT REPLICATION SLAVE ON *.* TO 'KIRA'@'%';

-- 刷新权限

FLUSH PRIVILEGES;

显示和记录Master状态

SHOW MASTER STATUS;


从服务器

创建容器

docker run -d \

-p 3308:3306 \

-v /kira/mysql/slave3/conf:/etc/mysql/conf.d \

-v /kira/mysql/slave3/data:/var/lib/mysql \

-e MYSQL_ROOT_PASSWORD=382673 \

--name mysql-kira-slave3 \

mysql:8.0.29

修改配置文件

vim /kira/mysql/slave3/conf/my.cnf

配置文件的内容

[mysqld]

# 服务器唯一id,每台服务器的id必须不同,如果配置其他从机,注意修改id

server-id=3

# 中继日志名,默认xxxxxxxxxxxx-relay-bin

#relay-log=relay-bin

重启容器

docker restart mysql-kira-slave3

进入容器操作

#进入容器:

docker exec -it mysql-kira-slave3 env LANG=C.UTF-8 /bin/bash

#进入容器内的mysql命令行

mysql -uroot -p

#修改默认密码校验方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '382673';

配置主从关系

CHANGE MASTER TO MASTER_HOST='192.168.88.130',

MASTER_USER='KIRA',MASTER_PASSWORD='382673', MASTER_PORT=3306,

MASTER_LOG_FILE='binlog.000003',MASTER_LOG_POS=1361;

具体的值要根据我们之前查出来的主库的值来配置

开启主从同步

START SLAVE;

-- 查看状态(不需要分号)

SHOW SLAVE STATUS\G

这两个都是YES,那么我们就是成功了


这个位置查看我们的错误

两个常见报错

这个是我们没关防火墙时就启动了docker,即使后面我们关闭防火墙docker里面还是没用


搭建主从集群时遇到的错误

用户插件错误

我们要修改我们的身份验证插件


我们在主库重新弄我们的KIRA用户的认证插件

ALTER USER 'KIRA'@'%' IDENTIFIED BY '382673';

ALTER USER 'KIRA'@'%' IDENTIFIED WITH mysql_native_password BY '382673';

docker restart mysql-kira-master


小重点

这两个KIRA用户是不同的,我们配置的是%的KIRA用户

如果我们修改的是上面那个指定IP的KIRA用户

那我们还是失败的

因为我们主机创建的KIRA用户是下面的

上面的用户都不存在

而且我们使用的KIRA用户也是%的KIRA用户

你看,我们的用户创建的时候,没有指定IP地址,而是%


经典报错

我们修改完认证插件后,我们呢还要重启我们的主库

我们的主库的状态如果我们不刷新,我们看不到改变的,一般错误都是那个指定主库的代码出错了

你看,刷新之后我们的file的版本号就变了

解决报错的经典代码,一般这些步骤就够了

-- 在从机停止slave

SLAVE STOP;

-- 在主机查看mater状态

SHOW MASTER STATUS;

-- 在主机刷新日志

FLUSH LOGS;

-- 再次在主机查看mater状态(会发现File和Position发生了变化)

SHOW MASTER STATUS;

-- 修改从机连接主机的SQL,并重新连接即可


ShardingSphere搭建mysql数据库的读写分离

尚硅谷的课程教的是properties格式

我觉得这个可读性太差了

所以我用的是yml格式

记住不同版本的依赖对应不同的官方文档,不然会启动不了或者许多配置和之前不同从而导致错误

跟着官网配置

数据源配置 :: ShardingSphere

且我们使用的YAML格式的配置,不是properties格式的配置

我们不同的版本要根据不同的文档来进行配置

我用的是5.4.1


经典的Spring配置文件

server:port: 8001
spring:application:name: ShardingSphere-testdatasource:# ShardingSphere 的驱动driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver# ShardingSphere 的urlurl: jdbc:shardingsphere:classpath:shardingsphere--config.yaml

读写分离配置

记得我们url后面要加很多东西,不然连接不上

还有单表配置必须写,不然shardingsphere找不到表

dataSources:master:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3306/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 382673slave1:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3307/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 382673slave3:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3308/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 382673
# 这个是我们的读写分离配置
rules:- !READWRITE_SPLITTINGdataSources:readwrite_ds:writeDataSourceName: masterreadDataSourceNames:- slave1- slave3transactionalReadQueryStrategy: PRIMARYloadBalancerName: kiraloadBalancers:kira:type: ROUND_ROBIN- !SINGLEtables:        #我们的单表配置- "*.*.*"defaultDataSource: master # 默认数据源,仅在执行 CREATE TABLE 创建单表时有效。缺失值为空,表示随机单播路由。props:         #我们打印SQL语句sql-show: true

垂直分片配置

dataSources:user:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3301/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 123456order:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3302/db_order?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 123456rules:- !SINGLEtables:        #我们的单表配置- "*.*.*"defaultDataSource: user # 默认数据源,仅在执行 CREATE TABLE 创建单表时有效。缺失值为空,表示随机单播路由。- !SHARDINGtables:t_user:  #逻辑表actualDataNodes: user.t_user #不同的表在不同的数据源,配置我们对应的数据源  这样我们就把逻辑表和真实节点映射了t_order:  #逻辑表actualDataNodes: order.t_order #不同的表在不同的数据源,配置我们对应的数据源      这样我们就把逻辑表和真实节点映射了props:         #我们打印SQL语句sql-show: true

水平分片配置

dataSources:user:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3301/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 123456order0:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3310/db_order?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 123456order1:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3311/db_order?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 123456rules:- !SINGLEtables:        #我们的单表配置- "*.*.*"defaultDataSource: user # 默认数据源,仅在执行 CREATE TABLE 创建单表时有效。缺失值为空,表示随机单播路由。- !SHARDINGtables:t_user:  #逻辑表actualDataNodes: user.t_user #不同的表在不同的数据源,配置我们对应的数据源  这样我们就把逻辑表和真实节点映射了t_order:#逻辑表actualDataNodes: order${0..1}.t_order${0..1} #不同的表在不同的数据源,配置我们对应的数据源      这样我们就把逻辑表和真实节点映射了databaseStrategy :# 用于单分片键的标准分片场景standard:# 分片键shardingColumn: order_no# 分片算法shardingAlgorithmName: kira# 分表策略tableStrategy:# 用于单分片键的标准分片场景standard:# 分片键shardingColumn: user_id# 分片算法shardingAlgorithmName: kira# 分片算法shardingAlgorithms:# 数据表分片算法kira:# 根据分片键 Hash 分片type: HASH_MOD# 分片数量props:sharding-count: 16props:         #我们打印SQL语句sql-show: true

用到的依赖

前面3个额外的依赖是好像是要引入的,不然会有什么类缺失,导致不兼容

然后我们的mybatisplus要指定boot3的版本,不然我们boot3好像执行mybatisplus的时候会报错

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc-core --><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core</artifactId><version>5.4.1</version></dependency><!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.1</version></dependency><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId></dependency><!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-spring-boot3-starter --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

我在真实项目中使用的是5.4.1版本

首先我配置好了mysql的主从模式

然后在shardingsphere里面来配置我们的读写分离

基本使用+报错

mybatis依赖冲突,启动报错

我们使用这个boot3的依赖包

因为一些特殊的报错,我还引入了这三个依赖

现在是目前有的依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc-core --><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core</artifactId><version>5.4.1</version></dependency><!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.1</version></dependency><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId></dependency><!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-spring-boot3-starter --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

配置mysql读写分离后,shardingsphere找不到对应的表的问题(mybatis找不到表) (单表配置规则)

捏m个bei的,弄了我3个小时

新版本的shardingsphere有个坑比的地方,就是它如果要读取表的话

我们这里要有个单表规则类配置

不然我们成功连接后,shardingsphere竟然莫名奇妙地找不到我们的对应的表

我配置规则

可以管理所有数据库里面的所有表

然后指定我们的默认数据库

这上面目前是一个数据源,然后我们配置成功了,终于可以成功连接了


读写分离配置

记住,我们要跟着对应版本的文档来进行操作,不同版本文档配置是不同的

基本的读写分离配置

这个是我们的shardingsphere配置

dataSources:master:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3306/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 382673slave1:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3307/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 382673slave3:dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedriverClassName: com.mysql.cj.jdbc.DriverjdbcUrl: jdbc:mysql://192.168.88.130:3308/db_user?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: rootpassword: 382673rules:- !READWRITE_SPLITTINGdataSources:readwrite_ds:writeDataSourceName: masterreadDataSourceNames:- slave1- slave3transactionalReadQueryStrategy: PRIMARYloadBalancerName: kiraloadBalancers:kira:type: ROUND_ROBIN- !SINGLEtables:        #我们的单表配置- "*.*.*"defaultDataSource: master # 默认数据源,仅在执行 CREATE TABLE 创建单表时有效。缺失值为空,表示随机单播路由。props:         #我们打印SQL语句sql-show: true


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QtQuick-QML类型系统-对象特性(id和属性)

每一个QML对象类型都包含一组定义好的特性。 每个对象类型的实例在创建时都会包含一组特性&#xff0c;这些特性是在该对象类型中定义的。一个QML文档中的对象声明定义了一个新的类型&#xff0c;其中可以包含如下特性&#xff1a; id特性属性&#xff08;property&#xff0…

(day26)leecode热题——找到字符串中所有字母异位词

描述 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd", p …

Kubernets——常用命令

Kubernets命令总结 命令说明 命令格式命令说明kubectl run 资源名称 -参数 --image镜像名称:标签创建资源对象&#xff0c;常用参数-i交互&#xff0c;-t终端kubectl get 查询资源 可选参数 -o wide 显示主机信息常用查询的资源 node|deployment|podkubectl exec -it 容器id …

【Git-驯化】一文搞懂git中代码冲突的解决方案大全

【Git-驯化】一文搞懂git中代码冲突的解决方案大全 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#xff1a…

[C++实战]日期类的实现

&#x1f496;&#x1f496;&#x1f496;欢迎来到我的博客&#xff0c;我是anmory&#x1f496;&#x1f496;&#x1f496; 又和大家见面了 欢迎来到C探索系列 作为一个程序员你不能不掌握的知识 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭建个人网站…

ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)

一、简介 1.1、软件简介 ELK其实是Elasticsearch&#xff0c;Logstash 和 Kibana三个产品的首字母缩写&#xff0c;这三款都是开源产品。 1.1.1、Elasticsearch简介 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析…

springboot微信老人健康与饮食管理系统-计算机毕业设计源码82939

基于微信老人健康与饮食管理系统的小程序 摘 要 基于Spring Boot的微信老人健康与饮食管理系统的小程序致力于为老年人提供便捷的健康管理和饮食指导服务。该小程序整合了健康资讯浏览、食谱推荐、健康评估等功能模块&#xff0c;通过系统的设计与实现&#xff0c;旨在帮助老年…

古丝绸之路传闻二:十年败壳精灵显,一介穷神富贵来

古丝绸之路传闻二&#xff1a;十年败壳精灵显&#xff0c;一介穷神富贵来 &#xff08;接上节&#xff1a;古丝绸之路传闻&#xff1a;分内功名匣里财&#xff0c;不关聪慧不关呆&#xff09; 先别说闲话。且说众人带着经纪主人到船上发货&#xff0c;文若虚把之前的事情说了一…

AccessLog| 一款开源的日志分析系统

前言 ClkLog作为分析系列产品中的前端数据分析系统&#xff0c;通过采集前端应用数据进行用户行为分析。其社区版从23年9月发布至今已有近一年&#xff0c;商业版也上线快半年&#xff0c;感谢大家一直以来的关注和支持&#xff0c;ClkLog会继续做好产品升级与服务&#xff0c;…

Linux冯诺依曼体系、操作系统、进程概念、进程状态、进程切换

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;Linux 目录 一、冯诺依曼体系结构 二、操作系统 1、概念 2、为什么要有操作系统&#xff1f; 3、理解操作系统 1.管理的本质 2.管理的概念 3.操作系统结构图 4.为什么要有操作系统&#xff1f; 三…

ASP.NET Core Web深度探讨

ASP.NET Core作为现代Web开发的基石&#xff0c;以其跨平台、高性能和模块化设计的特点&#xff0c;成为许多开发者的首选框架。本文将深入探讨ASP.NET Core在Web开发中的应用&#xff0c;包括MVC、Razor Pages、Blazor等框架的使用&#xff0c;以及路由、中间件、身份认证、会…

golang websocket 手写研究机制

// 处理ws请求 func WsHandler(w http.ResponseWriter, r *http.Request, id string) {var conn *websocket.Connvar err errorpingTicker : time.NewTicker(time.Second * 10)conn, err wsupgrader.Upgrade(w, r, nil)if err ! nil {log.Printf("Failed to set websocke…

python-NLP:2词性标注与命名实体识别

文章目录 词性标注命名实体识别时间命名实体&#xff08;规则方法&#xff09;CRF 命名实体识别方法 词性标注 词性是词汇基本的语法属性&#xff0c;通常也称为词类。词性标注是在给定句子中判定每个词的语法范畴&#xff0c;确定其词性并加以标注的过程。例如&#xff0c;表示…

Python机器学习实战:分类算法之逻辑回归-泰坦尼克号乘客生还预测

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能&#xff0c;从而更快地掌握解决问题所需的能力。 目录 逻辑回归算法介绍 练习题 Python代码与分析 1、读入数据&#xff0c;观察数据情况 2、各属性与生还情况的关联 3、…

用Python做一个翻译软件,比上浏览器快100倍

简单的用Python来做一个翻译软件 开发环境 Python 3.10 Pycharm模块使用 requests -> pip install requests hashlib tkinter案例分为三部分: 1. 爬虫: 获取翻译接口, 请求获取翻译结果问题1: 接口抓包分析问题2: 请求需要写cookie问题3: 不同文本翻译, s加密参数2. 界面…

国科大作业考试资料-人工智能原理与算法-2024新编-第十二次作业整理

袋子里面有3个有偏差的硬币a、b和c,抛掷硬币正面朝上的概率分别是20%、60%和80%。从袋 子里随机取出一个硬币(3个硬币被取出的概率是相等的),并把取出的硬币抛掷3次,得到抛掷结 果依次是X1 , X2和 X3。 a. 画出对应的贝叶斯网络并定义必要的CPT表。 b. 如果抛掷结果是…

PDF解锁网站

https://smallpdf.com/cn/unlock-pdfhttps://smallpdf.com/cn/unlock-pdfhttps://www.freemypdf.comhttps://www.freemypdf.com

【python】python图书管理系统_普通用户+管理员菜单(源码+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

vue vite开发环境https接口代理无法访问的问题

一、问题现象 本地请求是所有的接口前边只需要加一个前缀即可 —— /local/。比如登录接口就是 ‘/local/login’。于是去请求发现直接报错了&#xff0c;报错信息如下&#xff1a; 使用接口代理https接口请求&#xff0c;访问报错的问题&#xff0c;提示如下&#xff1a; http…

[代码审计]记一次简单的java代码审计

如果觉得该文章有帮助的&#xff0c;麻烦师傅们可以搜索下微信公众号&#xff1a;良月安全。点个关注&#xff0c;感谢师傅们的支持。 免责声明 本博客所发布的所有内容&#xff0c;包括但不限于信息、工具、项目以及文章&#xff0c;均旨在提供学习与研究之用。所有工具安全…