MySQL8.1源码安装与部署
官方文档
https://downloads.mysql.com/archives/community/https://dev.mysql.com/doc/refman/8.1/en/binary-installation.html官方文档源码安装步骤
# Preconfiguration setup
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
# Beginning of source-build specific instructions
$> tar zxvf mysql-VERSION.tar.gz
$> cd mysql-VERSION
$> mkdir bld
$> cd bld
$> cmake ..
$> make
$> make install
# End of source-build specific instructions
# Postinstallation setup
$> cd /usr/local/mysql
$> mkdir mysql-files
$> chown mysql:mysql mysql-files
$> chmod 750 mysql-files
$> bin/mysqld --initialize --user=mysql
$> bin/mysql_ssl_rsa_setup
$> bin/mysqld_safe --user=mysql &
# Next command is optional
$> cp support-files/mysql.server /etc/init.d/mysql.server
下载源码
https://dev.mysql.com/get/Downloads/MySQL-8.1/mysql-8.1.0.tar.gz[root@node01 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.1/mysql-8.1.0.tar.gz
源码安装先决条件
1、gcc和cmake版本要求
Linux:GCC 7.1 或 Clang 5
CMake:3.752、依赖包
cmake、make、automake、autoconf、gcc、gcc-c++、ncurses-devel、openssl-devel、libmcrypt3、安装依赖包
[root@node01 ~]# yum install cmake make gcc gcc-c++ autoconf automake openssl openssl-devel ncurses-devel libmcrypt* -y4、卸载mariadb
[root@node01 ~]# yum remove mariadb -y5、删除配置文件
[root@node01 ~]# rm -rf /etc/my.cnf
升级gcc
1、操作系统版本
[root@node01 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)2、查看gcc版本
[root@node01 ~]# gcc -v
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 3、安装scl
[root@node01 ~]# yum install centos-release-scl -y
[root@node01 ~]# yum list |grep gcc4、安装gcc8
[root@node01 ~]# yum install -y devtoolset-8-gcc*5、临时切换gcc
[root@node01 ~]# source /opt/rh/devtoolset-8/enable 6、查看gcc版本
[root@node01 ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
升级cmake
1、cmake编译
[root@node01 bld]# cmake ..
-- Running cmake version 2.8.12.2
CMake Warning at CMakeLists.txt:82 (MESSAGE):Please use cmake3 rather than cmake on this platform-- Please install cmake3 (yum install cmake3)
CMake Error at CMakeLists.txt:112 (CMAKE_MINIMUM_REQUIRED):CMake 3.5.1 or higher is required. You are running version 2.8.12.22、升级cmake,先移除原cmake
[root@node01 ~]# yum remove cmake -y3、下载cmake源码
[root@node01 ~]# wget https://github.com/Kitware/CMake/releases/download/v3.14.5/cmake-3.14.5.tar.gz4、解压缩
[root@node01 ~]# tar -zxf cmake-3.14.5.tar.gz
5、编译安装
[root@node01 ~]# cd cmake-3.14.5
[root@node01 cmake-3.14.5]# ./bootstrap
[root@node01 cmake-3.14.5]# gmake
[root@node01 cmake-3.14.5]# gmake install5、查看升级后版本
[root@node01 cmake-3.14.5]# /usr/local/bin/cmake --version
cmake version 3.14.5CMake suite maintained and supported by Kitware (kitware.com/cmake).6、建立软链接
[root@node01 cmake-3.14.5]# ln -s /usr/local/bin/cmake /usr/bin/[root@node01 ~]# cmake -version
cmake version 3.14.5CMake suite maintained and supported by Kitware (kitware.com/cmake).至此,cmake升级完毕
创建用户组和用户
1、查看用户mysql是否存在
[root@node01 ~]# id mysql
id: mysql: no such user2、创建用户组
[root@node01 ~]# groupadd -g 54321 mysql3、创建用户
[root@node01 ~]# useradd -r -g mysql -s /bin/false -u 54321 mysql4、查看用户[root@node01 ~]# id mysql
uid=54321(mysql) gid=54321(mysql) groups=54321(mysql)
解压缩创建软链接
[root@node01 ~]# tar -zxf mysql-8.1.0.tar.gz -C /usr/local/cluster/
[root@node01 ~]# ln -s /usr/local/cluster/mysql-8.1.0/ /usr/local/cluster/mysql
[root@node01 ~]# ll /usr/local/cluster/mysql
lrwxrwxrwx 1 root root 31 Jul 26 11:51 /usr/local/cluster/mysql -> /usr/local/cluster/mysql-8.1.0/
cmake编译安装
1、camke编译报错
[root@node01 ~]# cd /usr/local/cluster/mysql
[root@node01 mysql]# mkdir bld
[root@node01 bld]# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql-- Running cmake version 3.14.5
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- This is .el7. as found from 'rpm -qf /'
-- Looking for a devtoolset compiler
CMake Warning at CMakeLists.txt:395 (MESSAGE):Could not find devtoolset compiler/linker in /opt/rh/devtoolset-11CMake Warning at CMakeLists.txt:397 (MESSAGE):You need to install the required packages:yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutilsCMake Error at CMakeLists.txt:399 (MESSAGE):Or you can set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER explicitly.-- Configuring incomplete, errors occurred!2、根据报错提示安装devtoolset依赖包
[root@node01 bld]# yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils3、再次执行cmake报错
[root@node01 bld]# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysqlCMake Error at cmake/boost.cmake:108 (MESSAGE):You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>This CMake script will look for boost in <directory>. If it is not there,it will download and unpack it (in that directory) for you.You can also download boost manually, fromhttps://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2If you are inside a firewall, you may need to use an https proxy:export https_proxy=http://example.com:80Call Stack (most recent call first):cmake/boost.cmake:277 (COULD_NOT_FIND_BOOST)CMakeLists.txt:1555 (INCLUDE)-- Configuring incomplete, errors occurred!
See also "/usr/local/cluster/mysql/bld/CMakeFiles/CMakeOutput.log".
See also "/usr/local/cluster/mysql/bld/CMakeFiles/CMakeError.log".4、根据报错提示添加参数-DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
[root@node01 bld]# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/cluster/boost5、如果执行过程中还是报错,可以选择第二种手工下载boost
[root@node01 ~]# wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2 解压缩
[root@node01 ~]# yum -y install bzip2
[root@node01 ~]# tar -xjf boost_1_77_0.tar.bz2 -C /usr/local/这种手工下载boost需要将参数DDOWNLOAD_BOOST设为0,DDOWNLOAD_BOOST=1,表示系统会自动下载并解压
[root@node02 bld]# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDOWNLOAD_BOOST=0 -DWITH_BOOST=/usr/local/cluster/boost_1_77_0make&&make install
[root@node01 bld]# make
[root@node01 bld]# make install在执行make过程中如果报错,解决方便是升级内存,我的虚拟机环境内存2G,执行make报错,升级到4G后再次make成功
g++: fatal error: Killed signal terminated program cc1plus
创建数据目录
1、创建数据目录
[root@node01 ~]# mkdir -p /data/mysql
3、更改目录属组
[root@node01 ~]# chown -R mysql:mysql /data/mysql/
参数配置
[root@node01 ~]# vim /etc/my.cnf[client]
port=3306[mysql]
prompt="\\u@\\h [\\d]>"[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
log-error=/data/mysql/mysql.err
初始化数据库
1、默认使用/etc/my.cnf参数文件
[root@node01 ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql2、看到日志输出显示临时密码说明初始化成功
[root@node01 ~]# more /data/mysql/mysql.err | grep temporary
2023-07-26T10:11:27.989113Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: VfLweNjef9!w
启动数据库
1、启动数据库
[root@node01 ~]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
[1] 8797
[root@node01 ~]# 2023-07-26T10:16:06.974009Z mysqld_safe Logging to '/data/mysql/mysql.err'.
2023-07-26T10:16:07.003797Z mysqld_safe Starting mysqld daemon with databases from /data/mysql2、查看进程/usr/local/mysql/bin/mysqld_safe是守护进程
[root@node01 ~]# ps -ef |grep mysql |grep -v grep
root 8797 87308 0 18:16 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
mysql 9031 8797 3 18:16 pts/1 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql.err --pid-file=/data/mysql/mysql.pid --port=3306
配置环境变量
1、修改配置文件
[root@node01 ~]# vim .bash_profile
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/binexport PATHexport JAVA_HOME=/usr/local/cluster/jdk
export PATH=$PATH:$JAVA_HOME/bin
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin2、使环境变量生效
[root@node01 ~]# source .bash_profile
登录测试
[root@node01 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.1.0Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.root@localhost [(none)]>
修改密码
首次登录数据库需要修改root密码root@localhost [(none)]> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.root@localhost [(none)]> select user,host from mysql.user;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
root@localhost [(none)]> use mysql;
No connection. Trying to reconnect...
Connection id: 12
Current database: *** NONE ***ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.root@localhost [(none)]> alter user 'root'@'localhost' identified by 'Oracle@123';
Query OK, 0 rows affected (1.29 sec)root@localhost [(none)]> flush privileges;
Query OK, 0 rows affected (0.14 sec)root@localhost [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
root@localhost [(mysql)]> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
使用配置文件启动
使用配置文件/usr/local/mysql/support-files/mysql.server启动[root@node01 ~]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL................ SUCCESS![root@node01 ~]# /usr/local/mysql/support-files/mysql.server statusSUCCESS! MySQL running (102015)[root@node01 ~]# /usr/local/mysql/support-files/mysql.server stop
Shutting down MySQL... SUCCESS!
配置systemctl服务
通过查看配置文件/usr/local/mysql/support-files/mysql.server,可以看到变量basedir和datadir和配置文件中的变量一致,不需要修改。配置文件默认是/etc/my.cnf,也不需要修改[root@node01 ~]# vim /usr/local/mysql/support-files/mysql.server
mysqld_pid_file_path=
if test -z "$basedir"
thenbasedir=/usr/local/mysqlbindir=/usr/local/mysql/binif test -z "$datadir"thendatadir=/data/mysqlfisbindir=/usr/local/mysql/binlibexecdir=/usr/local/mysql/bin
elsebindir="$basedir/bin"if test -z "$datadir"thendatadir="$basedir/data"fisbindir="$basedir/sbin"libexecdir="$basedir/libexec"
fi1、创建systemctl服务
[root@node01 ~]# vim /usr/lib/systemd/system/mysqld.service[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/mysql/mysql.pid
TimeoutSec=0# Execute pre and post scripts as root
PermissionsStartOnly=true# Start main service
ExecStart=/usr/local/mysql/support-files/mysql.server start# Use this to switch malloc implementation
#EnvironmentFile=-/etc/sysconfig/mysql# Sets open_files_limit
@LimitNOFILE = 5000Restart=on-failure
RestartPreventExitStatus=1PrivateTmp=false2、加载服务
[root@node01 ~]# systemctl daemon-reload3、设置开机自启
[root@node01 ~]# systemctl enable mysqld.service4、查看状态
[root@node01 ~]# systemctl status mysqld.service
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)Active: inactive (dead)Docs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlJul 27 19:20:44 node01 systemd[1]: [/usr/lib/systemd/system/mysqld.service:28] Unknown lvalue '@LimitNOFILE' in section 'Service'5、启动mysql
[root@node01 ~]# systemctl start mysqld.service
[root@node01 ~]# systemctl status mysqld.service
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)Active: active (running) since Thu 2023-07-27 19:24:00 CST; 2s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 113461 ExecStart=/usr/local/mysql/support-files/mysql.server start (code=exited, status=0/SUCCESS)Main PID: 113725 (mysqld)Tasks: 39Memory: 291.3MCGroup: /system.slice/mysqld.service├─113474 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid└─113725 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/li...Jul 27 19:23:59 node01 systemd[1]: Starting MySQL Server...
Jul 27 19:24:00 node01 systemd[1]: mysqld.service: Supervising process 113725 which is not our child. We'll most likely no... exits.
Jul 27 19:24:00 node01 systemd[1]: Started MySQL Server.
Hint: Some lines were ellipsized, use -l to show in full.6、查看进程
[root@node01 ~]# ps -ef |grep mysql |grep -v grep
mysql 113474 1 0 19:23 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/mysql.pid
mysql 113725 113474 4 19:23 ? 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/mysql/mysql.err --pid-file=/data/mysql/mysql.pid --port=3306
总结
1、之前一直使用rpm包和二进制包方式进行安装部署mysql,目前刚刚发布mysql8.1版本,尝试使用源码安装8.1
2、源码安装的先决条件比较多,如依赖包、gcc版本和cmake版本都需要升级,在执行cmake编译安装的过程中出现很多报错,具体报错都已经解决
相关文章:
MySQL8.1源码安装与部署
官方文档 https://downloads.mysql.com/archives/community/https://dev.mysql.com/doc/refman/8.1/en/binary-installation.html官方文档源码安装步骤 # Preconfiguration setup $> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql # Beginning of source-b…...
algebraic reconstruction technique(ART)
数值线性代数的Kaczmarz方法被Gordon,Bender,Herman引入至CT重建中,称为ART方法。 A x b Axb Axb A A A为 m n m\times n mn的稀疏矩阵。 A A A的元素 a i j a_{ij} aij表示像素 j j j对射线 i i i投影的贡献。 A A A的行向量 a i T a…...

oracle11g安装
oracle11g安装 安装环境 虚拟机版本:centos7.9 虚拟机ip:192.168.5.144 oracle版本:11g oracle安装包:p13390677_112040_Linux-x86-64_1of7.zip,p13390677_112040_Linux-x86-64_2of7.zip,p13390677_11204…...

网络防御(9)
.一、SSL工作过程是什么? SSL位于应用层和传输层之间,它能够为基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议本身分为两层: 上层为SSL握手协议(SSL handshake protocol)、SSLpassword变化协议(S…...
Spring核心与设计思想
文章目录 Spring是什么?认识Spring IoC容器传统的开发图书管理系统设计可能导致的问题 使用IoC容器 Spring是什么? Spring是一个用于构建企业级应用程序的开源框架,它为Java开发者提供了一种简化和加速应用程序开发的方式。Spring框架提供了…...
【stream的使用】使用stream.filter过滤List对象
Stream初相识 概括讲,可以将Stream流操作分为3种类型: 创建Stream Stream中间处理 终止Steam 每个Stream管道操作类型都包含若干API方法,先列举下各个API方法的功能介绍。 开始管道 主要负责新建一个Stream流,或者基于现有的数组…...

Flink多流处理之connect拼接流
Flink中的拼接流connect的使用其实非常简单,就是leftStream.connect(rightStream)的方式,但是有一点我们需要清楚,使用connect后并不是将两个流给串联起来了,而是将左流和右流建立一个联系,作为一个大的流,并且这个大的流可以使用相同的逻辑处理leftStream和rightStream,也可以…...

对任意类型数都可以排序的函数:qsort函数
之前我们学习过冒泡排序: int main() {int arr[] { 9,7,8,6,5,4,3,2,1,0 };int sz sizeof(arr)/sizeof(arr[0]);int i 0;for (i 0; i < sz-1; i) {int j 0;for (j 0; j < sz-1-i; j) {if (arr[j] > arr[j 1]){int temp 0;temp arr[j];arr[j] ar…...
vue数据更新table内容不更新解决方法
场景: table组件绑定的数据变化时,页面没有重新渲染,常见于子组件中使用table组件 原理: 创建实例时 数组在vue中没有被监听到,属于非响应式数据,数组的下标变化无法监听到 解决方式: <e…...
合宙Air724UG LuatOS-Air script lib API--record
record Table of Contents record record.start(seconds, cbFnc, type, quality, rcdType, format, streamRptLen) record.stop(cbFnc) record.getFilePath() record.getData(offset, len) record.getSize() record.delete() record.exists() record.isBusy() record 模块功能&…...

基于Vgg16和Vgg19深度学习网络的步态识别系统matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ................................................................ % 设置训练选项options …...

Java分布式微服务3——Docker
文章目录 Docker介绍安装DockerDocker基础操作Docker服务的启动镜像命令容器命令1. 从docker hub去查看Nginx容器的运行命令2. 查看所有容器状态3. 查看容器日志4. 进入Nginx容器执行命令,修改Html内容,添加“Hello World”5. 停止与开始容器6. 删除容器…...
js字符串替换
在JavaScript中,字符串替换 有多种方法,下面介绍其中一些比较常用的方法。 使用replace()方法、 replace()方法用于在字符串中查…...

网络防御(2)
1. 什么是防火墙? 2. 状态防火墙工作原理? 3. 防火墙如何处理双通道协议? 一、什么是防火墙? 防火墙是一种网络安全设备或软件,用于保护计算机网络免受未经授权的访问,并管理网络流量。它作为一个安全边界…...

[RCTF2019]DontEatMe
前言 一道迷宫题,但是输入被加密后使用,迷宫也需要在程序中找出并没有直接输出 分析 反调试 发现有两个比较特殊的地方,随机数和创建了新线程,随机数后面又被重新赋值给覆盖了,暂时不用管,ZwSetInformat…...

6. CSS(三)
目录 一、盒子模型 (一)网页布局的本质 (二)盒子模型组成 (三)边框(border) (四)表格的细线边框 (五)内边距(padding…...

计算机网络—HTTP
这里写目录标题 HTTP是什么HTTP常见状态码HTTP常见字段GET与POST的区别Get和Post是安全和幂等吗PUT幂等,不安全DELETE幂等,不是安全 HTTP缓存技术HTTP缓存实现技术 HTTP1.0优缺点和性能HTTP1.1优缺点和性能HTTP2优缺点和性能HTTP3优缺点和性能HTTP和HTTP…...

Tomcat线程池原理
1. 一个 SpringBoot 项目能同时处理多少请求?tomcat容器, 200 次。 2. 怎么来的? 而点击这些线程,查看其堆栈消息,可以看到 Tomcat、threads、ThreadPoolExecutor 等关键字 基于“短时间内有 200 个请求被立马处理…...

踩坑 视觉SLAM 十四讲第二版 ch13 编译及运行问题
一、安装Geset 库 sudo apt-get install libgtest-dev cd /usr/src/gtest sudo mkdir build cd build sudo cmake .. //一定要以sudo的方式运行,否则没有写入权限 sudo make //这个也一样要以sudo的方式 sudo cp libgtest*.a /usr/local/lib //将生成…...
【设计模式】-装饰器模式
Java 设计模式之装饰器模式 前言 在软件开发中,经常有需求对已有的对象进行功能的扩展,但是传统的继承方式会导致类的数量快速增多,且难以维护。为了解决这个问题,装饰器模式应运而生。 装饰器模式是一种结构型设计模式ÿ…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...