一文学会MySQL四种安装方式

news2024/11/16 3:24:03

目录

🍁rpm方式安装

🍀下载软件包

🍀前置配置

🍀安装MySQL

🍁yum方式安装

🍀下载软件包

🍀安装MySQL

🍁二进制方式安装

🍀下载软件包

🍀安装MySQL

🍁编译方式安装

🍀下载软件包

🍀安装编译工具

🍀安装MySQL

🍁总结四种安装方式


    🦐博客主页:大虾好吃吗的博客

    🦐MySQL专栏:MySQL专栏地址

        如何学会一门it技术?刚开始接触的一门新的课程时,都会有点发怵的,但是等你学完了,回头细想,也没什么难得嘛。如果学习MySQL课程时,除了理论知识外,最重要的就是把MySQL服务搭建出来,学会本章,你会发现没有什么难的,无他唯熟尔。如果想了解MySQL如何使用,点MySQL专栏  如果想了解更多运维知识,点我博客主页 学无止境,让我们一起学习下去吧。

rpm方式安装

下载软件包

        既然要安装,就需要有安装包,我们先从下载安装包开始去下载,注意自己的主机和版本,我这里用的是Centos7.9

操作步骤(附图):官网下载地址→MySQLrpm包官网下载

 

前置配置

        下载后创建一个存放rpm包目录,或使用已有的目录,并检查系统内是否有自带的mariadb服务,有则卸载没有就忽略。

[root@daxia ~]# mkdir /rpmdir
[root@daxia ~]# ls /rpmdir/
mysql-community-client-5.7.40-1.el7.x86_64.rpm  mysql-community-libs-5.7.40-1.el7.x86_64.rpm
mysql-community-common-5.7.40-1.el7.x86_64.rpm  mysql-community-server-5.7.40-1.el7.x86_64.rpm
[root@daxia ~]# rpm -qa |grep mariadb
[root@daxia ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

安装MySQL

安装,两个参数分别表示强制安装和忽略依赖

[root@daxia ~]# rpm -ivh /rpmdir/* --nodeps --force
[root@daxia ~]# rpm -qa |grep mysql
mysql-community-client-5.7.40-1.el7.x86_64
mysql-community-server-5.7.40-1.el7.x86_64
mysql-community-common-5.7.40-1.el7.x86_64
mysql-community-libs-5.7.40-1.el7.x86_64

查看版本,启动mysql,登录发现要密码, 去查看log日志。最后查看到密码是D5r-mlkCMuIf

[root@daxia ~]# mysql --version
mysql  Ver 14.14 Distrib 5.7.40, for Linux (x86_64) using  EditLine wrapper
[root@daxia ~]# systemctl start mysqld
[root@daxia ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@daxia ~]# grep password /var/log/mysqld.log 
2023-06-05T00:21:35.815624Z 1 [Note] A temporary password is generated for root@localhost: D5r-mlkCMuIf
2023-06-05T00:21:39.800941Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)

创建密码,第一次输入日志中的临时密码,第二次输入新密码(符合密码复杂性要求8位以上大小写特殊字符)。

[root@daxia ~]# mysqladmin -uroot -p password
Enter password:                     #临时密码
New password:                       #新密码

yum方式安装

下载软件包

指定官网源,安装mysql。

[root@daxia ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
#省略安装部分
[root@daxia ~]# yum -y install mysql57-community-release-el7-11.noarch.rpm
[root@daxia ~]# yum install -y mysql-community-server --nogpgcheck

安装MySQL

        启动mysql,登录时发现需要密码,这时我们还是去看日志文件中的临时密码,登录即可。符合密码复杂性要求8位以上大小写特殊字符。

[root@daxia ~]# systemctl start mysqld
[root@daxia ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@daxia ~]# grep password /var/log/mysqld.log 
2023-06-05T00:59:00.492033Z 1 [Note] A temporary password is generated for root@localhost: el55BgQwll/t
2023-06-05T00:59:14.381115Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
[root@daxia ~]# mysqladmin -uroot -p password
Enter password:             #临时密码
New password:               #新密码

可以通过修改安全策略的方式,只校验密码长度(8位)

mysql> set global validate_password_policy=0
    -> ;
Query OK, 0 rows affected (0.00 sec)
​
mysql> alter user root@localhost identified by '12345678';
Query OK, 0 rows affected (0.00 sec)
​
mysql> exit
Bye
[root@daxia ~]# mysql -uroot -p12345678

二进制方式安装

下载软件包

        官网下载地址二进制包官网下载

安装MySQL

        二进制安装这里就使用脚本了,注意查看脚本注意事项。虽然我使用的是脚本,但还是强烈建议自行编辑命令,脚本写的很简单,仅用来二进制MySQL也够了,如果学习脚本请参考Linux入门到精通专栏。

[root@localhost /]# mkdir /sh
[root@localhost /]# cd /sh
[root@localhost sh]# vim mysql.sh
[root@localhost sh]# mv /mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz /usr/src
[root@localhost sh]# sh mysql.sh 
#!/bin/bash
​
#把mysql安装包放到/usr/src/目录下。
#二进制安装MySQL,请使用source执行脚本否则环境变量不生效(密码为$pass,默认为登录状态)。
#登录mysql后密码修改命令:alter user root@localhost identified by '密码';
​
#解压mysq-5.7.40
tar zxf /usr/src/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.40-linux-glibc2.12-x86_64 /usr/local/mysql
​
#删除冲突软件
rpm -e mariadb-libs --nodeps
​
#创建/data目录并赋权
mkdir -p /usr/local/mysql/data
groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql
chown -R mysql:mysql /usr/local/mysql/
​
#编写my.cnf配置文件
cat >> /etc/my.cnf << end
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysql.pid
log_error=/usr/local/mysql/data/mysql.log
socket=/tmp/mysql.sock
end
​
#启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
​
#设置环境变量
sed -i '2i export PATH=\$PATH:/usr/local/mysql/bin'  /etc/profile
source /etc/profile
​
#初始化mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
​
#启动mysql
/etc/init.d/mysqld start
#systemctl管理
cat >> /etc/systemd/system/mysqld.service << end
[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
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
end
systemctl restart mysqld
​
#查看mysql初始密码并登录
pass=$(grep password /usr/local/mysql/data/mysql.log | grep 'password is' | awk '{print $NF}')
export pass
​
mysql -uroot -p$pass
​
[root@localhost sh]# sh mysql.sh 

执行后自动登录MySQL,需要修改密码。

直接在里面修改密码,修改后退出。

mysql> alter user root@localhost identified by '123';
Query OK, 0 rows affected (0.00 sec)
​
mysql> exit
Bye

        测试登录,我直接登录时发现登录不了,想了下哪里出问题了,如果没安装成功也不可能执行脚本后就自动登录到MySQL里面。查看了下位置变量/etc/profile发现路径也插入成功了,再次执行source后就可以登录了。

[root@localhost sh]# mysql -uroot -p123
bash: mysql: command not found...
[root@localhost sh]# source /etc/profile
[root@localhost sh]# mysql -uroot -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.40 MySQL Community Server (GPL)
​
Copyright (c) 2000, 2022, 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.
​
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

编译方式安装

下载软件包

        编译安装MySQL前需要先安装编译工具和编译版本的MySQL包。下载网址如下,根据自身需求安装对应的版本即可。

cmake-3.26.4.tar.gz                  Download | CMake

ncurses-5.9.tar.gz                     ftp://ftp.gnu.org/gnu/ncurses/

bison-3.8.1.tar.gz                      Index of /gnu/bison

mysql-5.7.40.tar.gz       http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.40.tar.gz

Boost_1_59_0.tar.gz http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

下载后直接把五个包放到/usr/local/src下

[root@daxia ~]# cd /usr/local/src
[root@daxia src]# ls
bison-3.8.1.tar.gz  boost_1_59_0.tar.gz  cmake-3.26.4.tar.gz  mysql-5.7.40.tar.gz  ncurses-5.9.tar.gz

安装编译工具

[root@daxia src]# tar zxf cmake-3.26.4.tar.gz 
[root@daxia src]# cd cmake-3.26.4/
[root@daxia cmake-3.26.4]# ./bootstrap && gmake && gmake install            #执行这个命令报错,如果报错就执行下面命令下载ssl然后在安装
[root@daxia cmake-3.26.4]# yum install -y openssl openssl-devel
[root@daxia cmake-3.26.4]# cd /usr/local/src
[root@daxia src]# tar zxf ncurses-5.9.tar.gz 
[root@daxia src]# cd ncurses-5.9/
[root@daxia ncurses-5.9]# ./configure && make && make install
[root@daxia ncurses-5.9]# cd /usr/local/src/
[root@daxia src]# tar zxf bison-3.8.1.tar.gz 
[root@daxia src]# cd bison-3.8.1/
[root@daxia bison-3.8.1]# ./configure && make &&make install
[root@daxia bison-3.8.1]# cd /usr/local/src
[root@daxia src]# tar zxf boost_1_59_0.tar.gz 
[root@daxia src]# mv boost_1_59_0 /usr/local/boost

创建用户和用户组以及mysql存放目录

[root@daxia ~]# groupadd -r mysql
[root@daxia ~]# useradd -r -g mysql -s /bin/false -M mysql
[root@daxia ~]# mkdir -p /usr/local/mysql/data

安装MySQL

[root@daxia src]# cd /usr/local/src
[root@daxia src]# tar zxf mysql-5.7.40.tar.gz 
[root@daxia src]# cd mysql-5.7.40/
[root@daxia mysql-5.7.40]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost

上述参数说明

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #[MySQL 安装的根目录] -DMYSQL_DATADIR=/usr/local/mysql /data  #[MySQL 数据库文件存放目录] 
-DSYSCONFDIR=/etc                       #[MySQL 配置文件所在目录] 
-DWITH_MYISAM_STORAGE_ENGINE=1          #[添加 MYISAM 引擎支持 ] 
-DWITH_INNOBASE_STORAGE_ENGINE=1        #[添加InnoDB引擎支持] 
-DWITH_ARCHIVE_STORAGE_ENGINE=1         #[添加 ARCHIVE 引擎支持 ] 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock       #[指定 mysql.sock 位置 ] 
-DWITH_PARTITION_STORAGE_ENGINE=1       #[安装支持数据库分区 ] 
-DEXTRA_CHARSETS=all                    #[使MySQL 支持所有的扩展字符] 
-DDEFAULT_CHARSET=utf8                  #[设置 MySQL 的默认字符集为utf8] 
-DDEFAULT_COLLATION=utf8_general_ci     #[设置默认字符集校对规则 ] 
-DWITH-SYSTEMD=1                        #[可以使用systemd控制mysql服务] 
-DWITH_BOOST=/usr/local/boost           #[指向 boost 库所在目录] 

        编译安装,使用这个方法可以加速安装方式,-j 参数表示根据 CPU 核数指定编译时的线程数,可以加快编译速度。默认为 1 个线程编译。 平常使用的是make && make install

[root@daxia mysql-5.7.40]# make -j $(grep processor /proc/cpuinfo | wc -l) && make install

经过漫长的编译安装过程,如果报错,查看报错信息。如果没有报错,添加path路径

[root@daxia mysql-5.7.40]# vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
[root@daxia mysql-5.7.40]# source /etc/profile

设置权限,"."表示当前目录

[root@daxia mysql-5.7.40]# cd /usr/local/mysql
[root@daxia mysql]# chown -R mysql:mysql .

创建配置文件,如果有原文件就覆盖掉

[root@daxia mysql]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
pid_file=/usr/local/mysql/data/mysqld.pid
log_error=/usr/local/mysql/data/mysql.log
socket=/tmp/mysql.sock

设置启动,把默认的pid文件指定到/var/run/mysqld/目录。

[root@daxia mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/
[root@daxia mysql]# vim /usr/lib/systemd/system/mysqld.service                                                  #修改下面两行
PIDFile=/usr/local/mysql/data/mysqld.pid                                                                        #修改pid文件位置
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS      #修改pid文件位置

启动MySQL并查看运行状态

[root@daxia mysql]# systemctl daemon-reload
[root@daxia mysql]# systemctl start mysqld
[root@daxia mysql]# systemctl status mysqld
 mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-06-05 15:00:00 CST; 4s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 114376 ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 114319 ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 114379 (mysqld)
    Tasks: 27
   CGroup: /system.slice/mysqld.service
           └─114379 /usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid
​
Jun 05 14:59:56 daxia systemd[1]: Starting MySQL Server...
Jun 05 14:59:56 daxia mysqld_pre_systemd[114319]: mktemp: failed to create file via template ‘/var/lib/mysql-files/install…irectoryJun 05 14:59:56 daxia mysqld_pre_systemd[114319]: chmod: cannot access ‘’: No such file or directory
Jun 05 14:59:56 daxia mysqld_pre_systemd[114319]: /usr/local/mysql/bin/mysqld_pre_systemd: line 43: : No such file or directory
Jun 05 14:59:56 daxia mysqld_pre_systemd[114319]: /usr/local/mysql/bin/mysqld_pre_systemd: line 44: $initfile: ambiguous redirect
Jun 05 15:00:00 daxia systemd[1]: Started MySQL Server.
Hint: Some lines were ellipsized, use -l to show in full.

登录MySQL

[root@daxia mysql]# grep password /usr/local/mysql/data/mysql.log               #查看默认密码 密码为u6vh%+jQTrkG
2023-06-05T06:59:57.844601Z 1 [Note] A temporary password is generated for root@localhost: u6vh%+jQTrkG
[root@daxia mysql]# mysqladmin -uroot -p password
Enter password:             #输入初始密码
New password:               #输入新密码(建议符合密码复杂性要求,否则会提醒)
Confirm new password:       #再次输入新密码
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@daxia mysql]# mysql -uroot -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.40 Source distribution
​
Copyright (c) 2000, 2022, 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.
​
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

总结四种安装方式

        到这里,我们就安装了四次MySQL服务了,相信你也明白了每种方式的优缺点。rpm和yum安装方式虽然会快,但是不能自定义安装,有些甲方需求无法满足,而二进制安装虽然可以定义一些需求,但是只能简单地一些定义,而编译安装无疑是最复合自定义的要求,但是安装时间较长,需要安装几款编译工具。如果要求不是很多的情况下建议使用二进制安装MySQL,如果是个人练习使用,可以使用rpm或yum方式安装。

 

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

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

相关文章

pyhon的运算符和字符串格式化方式

pyhton的变量类型 这里可以值得一提的是&#xff0c;python是一种弱类型的语言&#xff0c;使用的感觉有些像C的auto变量类型&#xff0c;定义变量不需要写类型名字&#xff0c;只需要变量名就会自动匹配 # int a 10 # float b 10.333 # string c "nihao" # dic…

Linux Shell 实现一键部署mariadb10.11

mariadb MariaDB数据库管理系统是MySQL的一个分支&#xff0c;主要由开源社区在维护&#xff0c;采用GPL授权许可 MariaDB的目的是完全兼容MySQL&#xff0c;包括API和命令行&#xff0c;使之能轻松成为MySQL的代替品。在存储引擎方面&#xff0c;使用XtraDB来代替MySQL的Inno…

【数据结构与算法分析】反转链表与顺序表(内含源码,思路清晰)

文章目录 介绍实现顺序表反转实现链表反转附链表的一些中间函数 介绍 顺序表和链表都是数据结构中常见的线性表。它们的主要区别在于内存管理方式不同。   顺序表&#xff08;Array&#xff09;是由一系列元素按照一定顺序依次排列而成&#xff0c;它使用连续的内存空间存储数…

【数据结构】--单链表力扣面试题⑥链表的回文结构

题述&#xff1a;对于一个链表&#xff0c;请设计一个时间复杂度为o(n),额外空间复杂度为o(1)的算法&#xff0c;判断其是否为回文结构。给定一个链表的头指针A&#xff0c;请返回一个bool值&#xff0c;代表其是否为回文结构。保证链表长度<900 测试样例&#xff1a; 输入…

【统计分析】Bland-Altman图:MedCalc操作指南与Python实现

之前有记录过一致性分析中的天选之子ICC&#xff08;传送&#xff09;&#xff0c;也提到过Bland-Altman图&#xff0c;Bland-Altman图在一致性分析中作为一种既定量又定性的方法&#xff0c;还有着高颜值的表达展现&#xff0c;受到了广泛地应用。   如下图所示&#xff0c;…

Explaining predictive models: the Evidence Counterfactual

Imagine being targeted with an advertisement for this blog. You’d like to know: why did the AI model predict you’d be interested in the Faculty of Business and Economics’ blog, based on the hundreds of web pages you visited? The answer could be: becaus…

搭建ubuntu容器内C/C++开发调试环境

一、创建容器 为了让容器内的调试器&#xff08;gdb、lldb&#xff09;能够正常调试&#xff0c;在创建容器时需要添加参数&#xff1a; podman添加参数&#xff1a;--cap-addSYS_PTRACE&#xff0c;docker添加参数--cap-addSYS_PTRACE --security-opt seccompunconfined 否…

chatgpt赋能python:Python快捷键——另存为

Python快捷键——另存为 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1991年创立。它的干净简洁&#xff0c;常规用途在计算机编程领域找到了广泛的应用。Python语言是一种普遍而有效的编程语言&#xff0c;有不少的Python程序员喜欢利用快捷键来提高编程效率。…

中医养生APP小程序开发 了解传统文化传承医学经典

中国文化博大精深&#xff0c;中国传统文化更是历史久远&#xff0c;一直到几千年后的今天很多传统文化依然对我们现在的生活有着重大的影响&#xff0c;比如中医。随着人们对健康关注度的提高&#xff0c;很多人把目光投向了追本溯源的中医上&#xff0c;企图通过中医养生达到…

搜索算法(四) 广度优先搜素算法

一、BFS bfs一层一层地遍历图或树&#xff0c;一般用队列实现&#xff0c;可以计算距离目标的步数。 二、例题 1&#xff09; 力扣https://leetcode.cn/problems/shortest-bridge/ 这道题实际是计算两个岛屿之间的最短距离&#xff0c;可以先用dfs搜索到第一个岛屿并且记录第…

TDEngine - taosdump的安装与使用实战

taosdump的安装与使用实战 一、taosdump简介二、下载三、安装四、taosdump主要参数五、taosdump数据导出&#xff08;备份&#xff09;六、taosdump数据导入七、不同版本的数据迁移7.1 问题&#xff1a;报错- create database 语句不一致7.2 解决&#xff1a;修改导出的dbs.sql…

MTK平台的SWT异常的简单总结(2)——SWT原理和分析

&#xff08;1&#xff09;原理性 &#xff08;2&#xff09;SWT如何抓取Log 遇到SWT问题详细可参考MTK提供的FAQ&#xff1a;SWT机制介绍。 获取Ap Log的路径&#xff1a;/sdcard/debuglogger/mobilelog/APLog_XXXXX 获取db的路径&#xff1a;/data/aee_exp 如果db没有打包…

RK3288 Android5.1添加WiFiBT模块AP6212

CPU&#xff1a;RK3288 系统&#xff1a;Android 5.1 注&#xff1a;RK3288系统&#xff0c;目前 Android 5.0 Kernel 3.10 SDK 支持 Braodcom,Realtek 等 WiFi BT 模块 各个 WiFi BT 模块已经做到动态兼容&#xff0c;Android 上层不再需要像以前一样进 行特定宏的配置 此…

华为OD机试真题 Java 实现【关联子串】【2023Q1 100分】,附详细解题思路

一、题目描述 给定两个字符串str1和str2&#xff0c; str1进行排列组合只要有一个为str2的子串则认为str1是str2的关联子串&#xff0c; 请返回子串在str2的起始位置&#xff0c;若不是关联子串则返回-1。 二、输入描述 qwe dsgfasgfwe 三、输出描述 -1 四、解题思路 …

遇到大数据处理,你会怎么办?快来看一下位图和布隆过滤器(下)

目录 前文 一&#xff0c;为什么有布隆过滤器 二&#xff0c;什么是布隆过滤器 三&#xff0c;布隆过滤器的实现 四&#xff0c;布隆过滤器的优缺点 4.1 布隆过滤器的优点 4.2 布隆过滤器的缺点及其改进方式 4.2.1 查找误判及其改进方式分析 4.2.2 不能删除以及改进方式分…

【HTML】第 1 节 - HTML 初体验

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 。 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、HTML 概念 2.1、HTML 定义 2.2、标签语法 3、HTML 基本骨架 4、标签的关系 5、注释 6、总结 1、缘起 最近在学习微信小程…

程序员0基础转行大数据年薪25万,只因我做了这件事...

现在我在成都的一家企业做大数据架构师&#xff0c;一个月税前可以拿到20k&#xff0c;还有项目奖金&#xff0c;一年下来最少也能拿25万。生活和工作也都在有条不紊地运转&#xff0c;每天也会有新的挑战&#xff0c;这正是我想要的生活。 01 机械工程专业 但我决定转行互联…

SpringBoot自定义starter之接口日志输出

文章目录 前言文章主体1 项目全部源码2 项目结构介绍3 starter 的使用3.1 配置文件 application,yml的内容3.2 启动类3.3 控制器类 4 测试结果 结语 前言 本文灵感来源是一道面试题。 要求做一个可以复用的接口日志输出工具&#xff0c;在使用时引入依赖&#xff0c;即可使用。…

MySQL数据库 10.DCL操作

目录 &#x1f914; 前言&#xff1a; &#x1f914;DCL介绍&#xff1a; &#x1f914;1.DCL管理用户&#xff1a; 1.查询用户&#xff1a; 图示&#xff1a; 2.创建用户 示例1&#xff1a; 运行结果&#xff1a;​ 示例2&#xff1a; 运行结果&#xff1a;​ 3.修改…

算法修炼之筑基篇——筑基一层中期(解决01背包,完全背包,多重背包)

✨博主&#xff1a;命运之光​​​​​​ &#x1f984;专栏&#xff1a;算法修炼之练气篇​​​​​ &#x1f353;专栏&#xff1a;算法修炼之筑基篇 ✨博主的其他文章&#xff1a;点击进入博主的主页​​​​​​ 前言&#xff1a;学习了算法修炼之练气篇想必各位蒟蒻们的基…