当前位置: 首页 > news >正文

MySQL8.0.40编译安装

近期MySQL发布了8.0.40版本,与之前的版本相比,部分依赖包发生了变化,因此重新编译一版,也便于大家参考。

1.  下载源码

选择对应的版本、选择源码、操作系统

8874702349cd1552f7851a537270c5ea.png

如果没有登录或者没有MySQL官网账号,可以选择只下载

dbc3aa163cec3a42c4e232274e15a443.png

2.  进行编译

上传至机器,解压源码

 
tar -zxvf  mysql-boost-8.0.40.tar.gz

17ad8132e9e24e9f02b95e065e47a687.png

2.1  准备阶段

因为编译安装需要cmake、make等命令,因此需提前安装相关依赖包及命令

 
yum install cmake make gcc gcc-c++ autoconf bison automake \
openssl openssl-devel zlib* fiex* libxml* \
ncurses-devel libmcrypt* libtool-ltdl-devel* -y
yum install gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binu
tils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc -y

由于MySQL从8.0.16版本开始,要求cmake的版本是cmake3以上,gcc版本为gcc 11.*以上版本,而且MySQL8.0.40的gcc需要12.*版本,因此如果使用Centos7等较低版本的操作系统,cmake及gcc  g++版本较低,需要升级后才能编译。相关包升级附在文末

创建相关目录

 
mkdir  /usr/local/mysql mkdir -p /data/mysql/mysql3306/{data,logs,tmp,etc}

2.2  编译检查阶段

开始编译

 
cmake -DINSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/mysql3306/data \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql3306/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_INNODB_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all \
-DFORCE_INSPECT=1 \
-DCONNECT_WITH_SYSTEMD=OFF \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_BOOST=/usr/local/mysql-8.0.40/boost/boost_1_77_0  \
-DENABLE_DOWNLOADS=1

出现报错

 
-- Running cmake version 3.26.5
-- This is .el9. as found from 'rpm -qf /'
-- Looking for a devtoolset compiler
-- Using /opt/rh/gcc-toolset-12/root/usr/bin/gcc
-- Using /opt/rh/gcc-toolset-12/root/usr/bin/g++
-- CMAKE_MODULE_PATH is /usr/local/mysql-8.0.40/cmake
-- MySQL 8.0.40
-- The C compiler identification is GNU 12.2.1
-- The CXX compiler identification is GNU 12.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/rh/gcc-toolset-12/root/usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/rh/gcc-toolset-12/root/usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Source directory /usr/local/mysql-8.0.40
-- Binary directory /usr/local/mysql-8.0.40
CMake Error at CMakeLists.txt:642 (MESSAGE):Please do not build in-source.  Out-of source builds are highlyrecommended: you can have multiple builds for the same source, and there isan easy way to do cleanup, simply remove the build directory (note that'make clean' or 'make distclean' does *not* work)You *can* force in-source build by invoking cmake with-DFORCE_INSOURCE_BUILD=1

因此加上  -DFORCE_INSOURCE_BUILD=1 再编译一次

 
cmake -DINSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/mysql3306/data \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql3306/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_INNODB_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all \
-DFORCE_INSPECT=1 \
-DCONNECT_WITH_SYSTEMD=OFF \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_BOOST=/usr/local/mysql-8.0.40/boost/boost_1_77_0  \
-DENABLE_DOWNLOADS=1  \
-DFORCE_INSOURCE_BUILD=1

出现如下新报错信息

 
CMake Error at cmake/readline.cmake:93 (MESSAGE):Curses library not found.  Please install appropriate package,remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):cmake/readline.cmake:127 (FIND_CURSES)cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)CMakeLists.txt:1929 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!

b0b69dc563cfb98302d8092602bc5f58.png缺少ncurses-devel依赖包所致,按照提示进行安装

 
yum install -y  ncurses-devel*

再次编译出现新错误

341476a7c7d1dfbb9558cc1b707e1a6b.png

缺少依赖,继续补充

 
yum install libtirpc* -y

安装后依旧报错(因为我的操作系统yum安装时没有libtirpc-devel),因此我选择查询出源码里的rpc.h文件,直接软连接到 /usr/include/ ,不建议这么操作,如果可以下载对应的安装包,建议安装依赖包

find / -name rpc.h
/usr/local/mysql-8.0.40/extra/libevent/libevent-2.1.11-stable/include/event2/rpc.h
/usr/local/mysql-8.0.40/extra/tirpc/libtirpc-1.3.5/tirpc/rpc/rpc.h
/usr/local/mysql-8.0.40/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc/rpc.h
ln -s /usr/local/mysql-8.0.40/extra/tirpc/libtirpc-1.3.5/tirpc/rpc/rpc.h   /usr/include/rpc/rpc.h

badecc8265957f7dadee03f4ea9a8a88.png效果确实有效,继续进行编译,出现新问题:

 
CMake Warning at cmake/rpc.cmake:30 (MESSAGE):Cannot find rpcgen executable.  You need to install the required packages:Debian/Ubuntu:              apt install rpcsvc-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE:                       zypper install glibc-develCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call Stack (most recent call first):plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)

继续安装依赖包

 
yum install glibc-devel rpcgen -y

直至build完成

80be87a39733796434eb6ad5d24f4d7d.png

2.3  进行编译及安装

开始make进行编译,为了加快点速度,我启用2个核心进行编译

 
make -j 2

6090c793f178c2b0110d95484c3e9fe0.png编译过程中出现新问题

 
/usr/include/rpc/rpc.h:38:10: fatal error: rpc/types.h: No such file or directory38 | #include <rpc/types.h>          /* some typedefs */|          ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [plugin/group_replication/libmysqlgcs/CMakeFiles/mysqlgcs.dir/build.make:99: plugin/group_replication/libmysqlgcs/CMakeFiles/mysqlgcs.dir/src/bindings/xcom/xcom/pax_msg.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:14468: plugin/group_replication/libmysqlgcs/CMakeFiles/mysqlgcs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 14%] Built target oci_common_objlib
make: *** [Makefile:166: all] Error 2

eb94f1292ec02ed9e0a286af0db7ff82.png主要是前面的rpc依赖处理所致,因此将rpc目录下所有文件都拷贝进来

cp  -rp  /usr/local/mysql-8.0.40/extra/tirpc/libtirpc-1.3.5/tirpc/rpc  /usr/include/rpc
In file included from /usr/include/rpc/rpc.h:38,from /usr/local/mysql-8.0.40/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/pax_msg.cc:28:
/usr/include/rpc/types.h:98:10: fatal error: netconfig.h: No such file or directory98 | #include <netconfig.h>|          ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [plugin/group_replication/libmysqlgcs/CMakeFiles/mysqlgcs.dir/build.make:99: plugin/group_replication/libmysqlgcs/CMakeFiles/mysqlgcs.dir/src/bindings/xcom/xcom/pax_msg.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:14468: plugin/group_replication/libmysqlgcs/CMakeFiles/mysqlgcs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 15%] Linking CXX static library librpl_channel_credentials_lib.a
[ 15%] Built target rpl_channel_credentials_lib
make: *** [Makefile:166: all] Error 2

e4509d9efbe1a7c24dabce93dfb47132.png继续复制依赖文件

cp  -rp /usr/local/mysql-8.0.40/extra/tirpc/libtirpc-1.3.5/tirpc/netconfig.h /usr/include/

ea6373e60a24645b569be9095345ebb5.png完成后顺利进行编译。出现如下信息:

2455d44e6ad75491dadf82aa6650369f.png

继续进行make  install

 
make  install

完成后结果如下

d4b62b01b2771af75a6dfb8103817da9.png

编译后MySQL内容如下

b6ab99f9458f8e71faba57db223d20e3.png

5bfcc6c424321a1fa6929330b6787f01.png

3. 安装数据库

创建数据库相关目录及配置文件

 
mkdir -p /data/mysql/mysql3306/{data,logs,tmp,etc}

配置文件按需添加放在etc/my.cnf中

创建mysql用户并将数据库目录授权

 
useradd  mysql
chown -R mysql:mysql /data/mysql/

初始化数据库

cd /usr/local/mysql
bin/mysqld --defaults-file=/data/mysql/mysql3306/etc/my.cnf   --initialize  --user=mysql

如果无异常,则在数据库日志中可以查看初始化的root@localhost账号密码

登录数据库并修改密码

6fad27732f949973859d1901df29de57.png

4.  补充部分依赖安装问题

4.1 cmake3

centos7系统中cmake预装版本较低,而编译8.0.40时需要更cmake3版本,如果无法通过yum install安装时,需要自己下载安装包进行安装

例如我在Centos7系统上用的3.15.5版本,可以通过如下命令下载

 
wget https://down.24kplus.com/linux/cmake/cmake-3.15.5.tar.gz

再解压、编译、安装即可

 
wget https://down.24kplus.com/linux/cmake/cmake-3.15.5.tar.gztar -zxvf cmake-3.15.5.tar.gz cd cmake-3.15.5./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && makemake install

完成后检查cmake版本

4bdd36d4178ccf47a0df06fae47d0852.png

4.2  gcc

对于gcc版本,MySQL8.0.40之前gcc11即可,8.0.40版本开始需要gcc12,如果可以yum方式直接安装比较方便,如果不能则需要临时调整到高版本yum源进行安装或下载安装包进行安装。本次使用的调整yum源的方式,步骤如下:

yum install scl-utils
yum install centos-release-scl centos-release-scl-rh

修改配置文件

 
vim /etc/yum.repos.d/CentOS-SCLo-scl.repo

添加如下内容

 
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo[centos-sclo-sclo-testing]
name=CentOS-7 - SCLo sclo Testing
baseurl=http://buildlogs.centos.org/centos/7/sclo/$basearch/sclo/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo[centos-sclo-sclo-source]
name=CentOS-7 - SCLo sclo Sources
baseurl=http://vault.centos.org/centos/7/sclo/Source/sclo/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo[centos-sclo-sclo-debuginfo]
name=CentOS-7 - SCLo sclo Debuginfo
baseurl=http://debuginfo.centos.org/centos/7/sclo/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

再添加repo文件

 
vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

添加如下内容

 
# CentOS-SCLo-rh.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/SCLo for more
# information[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/$basearch/rh/
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo[centos-sclo-rh-testing]
name=CentOS-7 - SCLo rh Testing
baseurl=http://buildlogs.centos.org/centos/7/sclo/$basearch/rh/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo[centos-sclo-rh-source]
name=CentOS-7 - SCLo rh Sources
baseurl=http://vault.centos.org/centos/7/sclo/Source/rh/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo[centos-sclo-rh-debuginfo]
name=CentOS-7 - SCLo rh Debuginfo
baseurl=http://debuginfo.centos.org/centos/7/sclo/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

重建yum元数据缓存

 
yum clean all
yum makecache

安装gcc g++

yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils -y

4.3 libtirpc-devel

由于在Roky9上直接yum方式无libtirpc-devel包,因此手动下载安装包进行安装。需要用和libtirpc版本一致的,如果不一致,则缺少依赖。因此我直接将2个包都下载并安装

wget http://rpmfind.net/linux/centos-stream/9-stream/BaseOS/x86_64/os/Packages/libtirpc-1.3.3-9.el9.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/centos-stream/9-stream/CRB/x86_64/os/Packages/libtirpc-devel-1.3.3-6.el9.x86_64.rpm
再本地安装
 
yum  localinstall libtirpc-1.3.3-9.el9.x86_64.rpm
yum localinstall -y  libtirpc-devel-1.3.3-9.el9.x86_64.rpm

4.4 重新构建及编译

由于我在构建和编译过程中有的包不存在或版本不对应,因此进行过一次重编译,及cmake时添加fresh选项

 
cmake --fresh -DINSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/mysql3306/data \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql3306/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_INNODB_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all \
-DFORCE_INSPECT=1 \
-DCONNECT_WITH_SYSTEMD=OFF \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_BOOST=/usr/local/mysql-8.0.40/boost/boost_1_77_0  \
-DENABLE_DOWNLOADS=1  \
-DFORCE_INSOURCE_BUILD=1

相关文章:

MySQL8.0.40编译安装

近期MySQL发布了8.0.40版本&#xff0c;与之前的版本相比&#xff0c;部分依赖包发生了变化&#xff0c;因此重新编译一版&#xff0c;也便于大家参考。 1. 下载源码 选择对应的版本、选择源码、操作系统 如果没有登录或者没有MySQL官网账号&#xff0c;可以选择只下载 2. 进…...

JavaScript 第23章:WebSocket 与实时通讯

在JavaScript中使用WebSocket进行实时通信是一个非常实用且强大的功能。下面我们将详细介绍WebSocket协议的基础知识、如何使用WebSocket对象以及如何构建一个简单的实时通信应用。 WebSocket 协议 WebSocket是一个在单个TCP连接上进行全双工通信的协议。WebSocket使得数据可…...

简单汇编教程10 数组

目录 实践&#xff1a;相加连续的数 数组是在内存中连续的一串变量。我这样说&#xff0c;可能你已经想到的大致的定义了&#xff1a; NUMBERS DW 34, 45, 56, 67, 75, 89 现在我们就定义了一个Number数组&#xff0c;里面存放的连续的六个数字&#xff1a;34, 45, 56, …...

Jsoup在Java中:解析京东网站数据

对于电商网站如京东来说&#xff0c;其页面上的数据包含了丰富的商业洞察。对于开发者而言&#xff0c;能够从这些网站中提取有价值的信息&#xff0c;进行分析和应用&#xff0c;无疑是一项重要的技能。本文将介绍如何使用Java中的Jsoup库来解析京东网站的数据。 Jsoup简介 …...

SQL 干货 | SQL 反连接

最强大的 SQL 功能之一是 JOIN 操作&#xff0c;它提供了一种优雅而简单的方法&#xff0c;将一个表中的每一条记录与另一个表中的每一条记录结合起来。不过&#xff0c;有时我们可能想从一个表中找到另一个表中没有的值。正如我们将在今天的博客文章中看到的&#xff0c;通过包…...

JSON 反对序列化 public final class LocalDateTime 日期格式错误

错误日志为&#xff1a; java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of java.time.LocalDateTime (no Creators, like default construct, exist): no String-argument constructor/factory meth…...

Java 集合

1. 集合框架概述 集合框架&#xff08;Collection Framework&#xff09; 是 Java 中为处理一组对象而设计的一套标准化 API&#xff0c;它包括一组通用的接口、实现类和算法。这些接口和类为各种数据结构和操作方法提供了统一的实现方式&#xff0c;使得开发者可以轻松地对数…...

爬虫日常实战

爬取美团新闻信息&#xff0c;此处采用两种方法实现&#xff1a; 注意点&#xff1a;因为此处的数据都是动态数据&#xff0c;所以一定要考虑好向下滑动数据包会更新的情况&#xff0c;不然就只能读取当前页即第一页数据&#xff0c;方法一通过更新ajax数据包网址页数&#xf…...

复写零--双指针

一&#xff1a;题目描述 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二&#xff1a;算法原理分析 三&#xff1a;代码编写 void duplicateZeros3(vector<int>& arr) {int dest -1, cur 0, n arr.size();//1.找到要复写的最后一个数字while …...

跟着小土堆学习pytorch(二)——TensorBoard和Transform

文章目录 一、TensorBoard1.1 add_scalar()1.1,1 报错&#xff1a;TypeError: MessageToJson() got an unexpected keyword argument including_default_value_fields1.1.2 图像重叠1.1.3 代码展示 1.2 add_image()1.2.1 代码 二、transform2.1 介绍——对图片进行一些变化2.2 …...

自由学习记录(10)

Sprite Packer ~Mode & 图集 packer Project Setting经常是金屋藏娇 创建的项目如果不是2d项目&#xff0c;则默认disable打包 编辑模式就是你没点运行看游戏效果&#xff0c;在狼狈敲码创对象写逻辑的那个状态&#xff0c; 运行模式从点了|>之后&#xff0c;就一直…...

Redis提供了专门的命令来实现自增操作

Redis中的自增操作并不是直接通过CAS&#xff08;Compare and Set&#xff09;操作实现的。Redis提供了专门的命令来实现自增操作&#xff0c;这些命令能够确保操作的原子性&#xff0c;而不需要显式地使用CAS机制。 Redis中的自增操作 Redis中的自增操作主要依赖于以下几个命…...

uniapp修改input中placeholder样式

Uniapp官方提供了两种修改的属性方法&#xff0c;但经过测试&#xff0c;只有 placeholder-class 属性能够生效 <input placeholder"请输入手机验证码" placeholder-class"input-placeholder"/><!-- css --> <style lang"scss" s…...

GenerativeU:生成式开放目标检测

论文&#xff1a;https://arxiv.org/abs/2403.10191 代码&#xff1a;https://github.com/FoundationVision/GenerateU 感想 目标检测任务已经逐渐从闭集场景专项开集场景&#xff0c;在LLM加持下&#xff0c;速读越来越快。该方法仍然依赖于预先定义的类别&#xff0c;这意味着…...

element plus e-table表格中使用多选,当翻页时已选中的数据丢失

摘要&#xff1a; 点击第一页选中两个&#xff0c;再选择第二页&#xff0c;选中&#xff0c;回到第一页&#xff0c;之前选中的要保留&#xff01; element ui table 解决办法&#xff1a; :row-key“getRowKeys” &#xff08;写在el-table中&#xff09; methods中声明 ge…...

CentOS 7 网络连接显示“以太网(ens33)不可用”

1.创建linux虚拟机&#xff0c;配置网络和主机名显示" 以太网&#xff08;ens33&#xff0c;被拔出&#xff09;" 2.桌面右键此电脑&#xff0c;管理&#xff0c;找到“服务和应用程序”&#xff0c;点击“服务”&#xff0c;找到下图两个服务&#xff0c;点击圈起来…...

qt QNetworkProxy详解

一、概述 QNetworkProxy通过设置代理类型、主机、端口和认证信息&#xff0c;可以使应用程序的所有网络请求通过代理服务器进行。它支持为Qt网络类&#xff08;如QAbstractSocket、QTcpSocket、QUdpSocket、QTcpServer、QNetworkAccessManager等&#xff09;配置网络层代理支持…...

推荐IDE中实用AI编程插件,目前无限次使用

插件介绍 一款字节跳动推出的“基于豆包大模型的智能开发工具” 以vscode介绍【pycharm等都可以啊】&#xff0c;这个插件提供智能补全、智能预测、智能问答等能力&#xff0c;节省开发时间 直接在IDE中使用&#xff0c;就不用在网页中来回切换了 感觉还可以&#xff0c;响应速…...

【华为HCIP实战课程十五】OSPF的环路避免及虚链路,网络工程师

一、避免域间路由环路 1、区域内部的防环:区域内同步了LSA,SPF就决定了区域内部没有环路 2、区间的防环机制:非正常的ABR不更新3类LSA 为防止区域间的环路OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则 1)、OSPF划分了骨干区域和非骨干区域,所有非骨干区域均直接…...

【编程语言】正则表达式:POSIX 与 PCRE 的全面比较及应用

目录 正则表达式&#xff1a;POSIX 与 PCRE 的全面比较及应用1. 正则表达式的基本概念1.1 基本元素1.2 正则表达式的历史 2. POSIX 正则表达式2.1 POSIX 正则表达式的语法2.1.1 基本正则表达式 (BRE)2.1.2 扩展正则表达式 (ERE) 2.2 POSIX 正则表达式的使用场景2.3 使用 POSIX …...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...