实战章节:在Linux上部署各类软件
前言
为什么学习各类软件在Linux上的部署
在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,但是并没有一些具体的实操能够串联起来这些知识点。
所以,现在我们设计了各类软件在Linux上部署安装的实战章节,可以让同学们:
- 对前面学习的各类操作命令进行复习和练习,从而深度掌握它们
- 本章节中演示部署的软件,包含了IT行业各类岗位中所必须使用的,如:Java后台、大数据开发、运维开发、测试、AI等。无论学习Linux后从事什么岗位,这些内容都会给你带来帮助
对于零基础学员,实战课程中所讲解的软件大概率多数大家并不了解。
所以,课程仅涉及到安装部署,不对软件的使用做详细说明。
同学们在这个过程中,可能会遇到各种各样的错误,
不要怕
,解决它,将会给你带来极大的提升。
学习目标
对于本部分的内容学习,我们设计两个目标:
-
对于零基础或未从业的学员,不要求深入理解所安装部署的软件是什么,仅仅能够跟随课程成功的将其部署安装并运行成功即可
在这个过程中,主要锻炼大家对Linux操作系统的熟练度,此乃零基础未从业学员的第一学习目标
-
对于有基础或已从业的学员,本章节讲解的软件涵盖了大多数IT从业者所能接触到的,特别是大数据开发、后端开发两个主流方向,可以作为参考资料,以便在工作中有所帮助。
本章节内的各类软件安装,不强制要求全部学习
- 零基础学员,建议全部学习,作为前面学习内容的总结和实战
- IT从业者、有经验学员,可以按需选择,选择工作中需要用到的进行学习
章节内包含的软件并非100%涵盖了IT开发领域中所需要的内容。
如果您对某些软件的安装有强烈需求,且课程中没有提供教程,可以私信,老师会酌情根据时间安排补充上去哦。
从现在开始,将要进入到Linux的实操阶段,在这个阶段我们将会涉及到非常多的软件部署等操作,涉及到:
- 各类命令的使用
- 各种过程的结果
- 复杂的流程步骤
- 等
前置要求
- 实战章节要求同学们务必全部学习前面的知识点,即:初识Linux、Linux基础命令、Linux权限管理、Linux高阶技巧这4个章节,请勿跳过前面的章节学习实战章节。
- 实战章节中会开启多台虚拟机,请尽量确保电脑的内存在:8GB(包含8GB)以上。如内存不足可以扩充内存条或购买阿里云、UCloud等云服务器临时使用(1个月多台低配服务器几十块左右)
对于云平台上购买服务器,可以参阅最后的章节(云服务)
注意
下面全部的软件安装的相关流程,90%都是取自软件自身的官方网站。
一个合格的程序员要有良好的信息收集能力哦
MySQL数据库管理系统安装部署【简单】
简介
MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。
MySQL数据库可谓是软件行业的明星产品,无论是后端开发、大数据、AI、运维、测试等各类岗位,基本上都会和MySQL打交道。
让我们从MySQL开始,进行实战的Linux软件安装部署。
本次课程分为2个版本进行安装:
- MySQL 5.7版本安装
- MySQL 8.x版本安装
由于MySQL5.x和8.x各自有许多使用者,所以这两个版本我们都演示安装一遍
注意
MySQL的安装过程中,除了会使用Linux命令外,还会使用到少量的数据库专用的:SQL语句
对于SQL语句我们并未涉及,所以可以跟随教程的内容,复制粘贴即可
如有时间,建议可以在学习完Linux系统之后,学习一下MySQL数据库
无论从事什么方面的开发,Java后端、大数据、AI、前端、Linux运维等,都会要求掌握MySQL数据库的
可以说,MySQL是IT开发从业者必备的技能了。
MySQL5.7版本在CentOS系统安装
注意:安装操作需要root权限
MySQL的安装我们可以通过前面学习的yum命令进行。
安装
-
配置yum仓库
# 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql yum库 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:
- 导入MySQL仓库的密钥
- 配置MySQLQ的yum仓库
-
使用yum安装MySQL
# yum安装Mysql yum -y install mysql-community-server
-
安装完成后,启动MySQL并配置开机自启动
systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启
MySQL安装完成后,会自动配置为名称叫做:
mysqld
的服务,可以被systemctl所管理 -
检查MySQL的运行状态
systemctl status mysqld
配置
主要配置管理员用户root的密码以及配置允许远程登录的权限。
-
获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log
-
登陆MySQL数据库系统
# 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
-
修改root用户密码
# 在MySQL控制台内执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '密码'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
-
[扩展],配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码
# 如果你想设置简单密码,需要降低Mysql的密码安全级别 set global validate_password_policy=LOW; # 密码安全级别低 set global validate_password_length=4; # 密码长度最低4位即可# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样) ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';
-
[扩展],配置root运行远程登录
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 授权root远程登录 grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option; # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址 # 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同# 刷新权限,生效 flush privileges;
-
退出MySQL控制台页面
# 退出命令 exit# 或者通过快捷键退出:ctrl + d
-
检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
MySQL8.0版本在CentOS系统安装
注意:安装操作需要root权限
安装
-
配置yum仓库
# 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql8.x版本 yum库 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
-
使用yum安装MySQL
# yum安装Mysql yum -y install mysql-community-server
-
安装完成后,启动MySQL并配置开机自启动
systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启
MySQL安装完成后,会自动配置为名称叫做:
mysqld
的服务,可以被systemctl所管理 -
检查MySQL的运行状态
systemctl status mysqld
配置
主要修改root密码和允许root远程登录
-
获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log
-
登录MySQL数据库系统
# 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
-
修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
-
[扩展],配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码
set global validate_password.policy=0; # 密码安全级别低 set global validate_password.length=4; # 密码长度最低4位即可
-
允许root远程登录,并设置远程登录密码
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc# 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
-
退出MySQL控制台页面
# 退出命令 exit# 或者通过快捷键退出:ctrl + d
-
检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
MySQL5.7版本在Ubuntu(WSL环境)系统安装
课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本
所以我们需要额外的步骤才可以安装5.7版本的MySQL
安装操作需root权限,你可以:
-
通过 sudo su -,切换到root用户
课程中选择这种方式操作
-
或在每一个命令前,加上sudo,用来临时提升权限
安装
-
下载apt仓库文件
# 下载apt仓库的安装包,Ubuntu的安装包是.deb文件 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
-
配置apt仓库
# 使用dpkg命令安装仓库 dpkg -i mysql-apt-config_0.8.12-1_all.deb
弹出框中选择:
ubuntu bionic
(Ubuntu18.04系统的代号是bionic,选择18.04的版本库用来安装)弹出框中选择:
MySQL Server & Cluster
弹出框中选择:
mysql-5.7
最后选择:
ok
-
更新apt仓库的信息
# 首先导入仓库的密钥信息 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29 # 更新仓库信息 apt update
-
检查是否成功配置MySQL5.7的仓库
apt-cache policy mysql-server
看到如图所示字样,即成功
-
安装MySQL5.7
# 使用apt安装mysql客户端和mysql服务端 apt install -f -y mysql-client=5.7* mysql-community-server=5.7*
弹出框中输入root密码并选择ok,密码任意,课程中以123456代替
再次输入root密码确认
-
启动MySQL
/etc/init.d/mysql start # 启动 /etc/init.d/mysql stop # 停止 /etc/init.d/mysql status # 查看状态
-
对MySQL进行初始化
# 执行如下命令,此命令是MySQL安装后自带的配置程序 mysql_secure_installation # 可以通过which命令查看到这个自带程序所在的位置 root@DESKTOP-Q89USRE:~# which mysql_secure_installation /usr/bin/mysql_secure_installation
-
输入密码:
-
是否开启密码验证插件,如果需要增强密码安全性,输入
y
并回车,不需要直接回车(课程中选择直接回车) -
是否更改root密码,需要输入
y
回车,不需要直接回车(课程不更改) -
是否移除匿名用户,移除输入
y
回车,不移除直接回车(课程选择移除) -
是否进制root用户远程登录,禁止输入
y
回车,不禁止直接回车(课程选择不禁止) -
是否移除自带的测试数据库,移除输入
y
回车,不移除直接回车(课程选择不移除) -
是否刷新权限,刷新输入
y
回车,不刷新直接回车(课程选择刷新)
-
-
登陆MySQL
mysql -uroot -p # 输入密码即可登陆成功
至此,在Ubuntu上安装MySQL5.7版本成功。
MySQL8.0版本在Ubuntu(WSL环境)系统安装
课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本
所以直接可以通过apt安装即可
注意,课程是以WSL获得的Ubuntu操作系统环境。
如果你通过VMware虚拟机的方式获得了Ubuntu操作系统环境,操作步骤不用担心,和课程中使用WSL环境是完全一致的
安装操作需root权限,你可以:
-
通过 sudo su -,切换到root用户
课程中选择这种方式操作
-
或在每一个命令前,加上sudo,用来临时提升权限
安装
-
如果已经安装过MySQL5.7版本,需要卸载仓库信息哦
# 卸载MySQL5.7版本 apt remove -y mysql-client=5.7* mysql-community-server=5.7*# 卸载5.7的仓库信息 dpkg -l | grep mysql | awk '{print $2}' | xargs dpkg -P
-
更新apt仓库信息
apt update
-
安装mysql
apt install -y mysql-server
-
启动MySQL
/etc/init.d/mysql start # 启动 /etc/init.d/mysql stop # 停止 /etc/init.d/mysql status # 查看状态
-
登陆MySQL设置密码
# 直接执行:mysql mysql
-
设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
-
退出MySQL控制台
exit
-
对MySQL进行初始化
# 执行如下命令,此命令是MySQL安装后自带的配置程序 mysql_secure_installation # 可以通过which命令查看到这个自带程序所在的位置 root@DESKTOP-Q89USRE:~# which mysql_secure_installation /usr/bin/mysql_secure_installation
-
输入密码:
-
是否开启密码验证插件,如果需要增强密码安全性,输入
y
并回车,不需要直接回车(课程中选择直接回车) -
是否更改root密码,需要输入
y
回车,不需要直接回车(课程不更改) -
是否移除匿名用户,移除输入
y
回车,不移除直接回车(课程选择移除) -
是否进制root用户远程登录,禁止输入
y
回车,不禁止直接回车(课程选择不禁止) -
是否移除自带的测试数据库,移除输入
y
回车,不移除直接回车(课程选择不移除) -
是否刷新权限,刷新输入
y
回车,不刷新直接回车(课程选择刷新)
-
-
重新登陆MySQL(用更改后的密码)
mysql -uroot -p
至此,在Ubuntu上安装MySQL5.7版本成功。
RabbitMQ安装部署【简单】
简介
RabbitMQ一款知名的开源消息队列系统,为企业提供消息的发布、订阅、点对点传输等消息服务。
RabbitMQ在企业开发中十分常见,课程为大家演示快速搭建RabbitMQ环境。
安装
rabbitmq在yum仓库中的版本比较老,所以我们需要手动构建yum仓库
-
准备yum仓库
# root执行 # 1. 准备gpgkey密钥 rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc rpm --import https://packagecloud.io/rabbitmq/erlang/gpgkey rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey# 2. 准备仓库文件 vim /etc/yum.repos.d/rabbitmq.repo # 填入如下内容 ## ## Zero dependency Erlang ##[rabbitmq_erlang] name=rabbitmq_erlang baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 # PackageCloud's repository key and RabbitMQ package signing key gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkeyhttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300[rabbitmq_erlang-source] name=rabbitmq_erlang-source baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 # PackageCloud's repository key and RabbitMQ package signing key gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkeyhttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300## ## RabbitMQ server ##[rabbitmq_server] name=rabbitmq_server baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 # PackageCloud's repository key and RabbitMQ package signing key gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkeyhttps://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300[rabbitmq_server-source] name=rabbitmq_server-source baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
-
安装RabbitMQ
# root执行 yum install erlang rabbitmq-server -y
Installed:erlang.x86_64 0:23.3.4.11-1.el7 rabbitmq-server.noarch 0:3.10.0-1.el7
-
启动
# root执行 # 使用systemctl管控,服务名:rabbitmq-server systemctl enable rabbitmq-server # 开机自启 systemctl disable rabbitmq-server # 关闭开机自启 systemctl start rabbitmq-server # 启动 systemctl stop rabbitmq-server # 关闭 systemctl status rabbitmq-server # 查看状态
-
放行防火墙,RabbitMQ使用5672、15672、25672 3个端口
# 方式1(推荐),关闭防火墙 systemctl stop firewalld # 关闭 systemctl disable firewalld # 关闭开机自启# 方式2,放行5672 25672端口 firewall-cmd --add-port=5672/tcp --permanent # 放行tcp规则下的5672端口,永久生效 firewall-cmd --add-port=15672/tcp --permanent # 放行tcp规则下的15672端口,永久生效 firewall-cmd --add-port=25672/tcp --permanent # 放行tcp规则下的25672端口,永久生效 firewall-cmd --reload # 重新加载防火墙规则
-
启动RabbitMQ的WEB管理控制台
rabbitmq-plugins enable rabbitmq_management
-
添加admin用户,并赋予权限
rabbitmqctl add_user admin 'Itheima66^' rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*" rabbitmqctl set_user_tags admin administrator
-
浏览器打开管理控制台
http://192.168.88.130:15672
至此,RabbitMQ已经安装完成了。
Redis安装部署【简单】
简介
redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。
redis的特点就是:快
,可以基于内存存储数据并提供超低延迟、超快的检索速度
一般用于在系统中提供快速缓存的能力。
安装
-
配置
EPEL
仓库EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。EPEL则为服务器版本提供大量的rpm包(yum程序所使用的程序安装包,类似Windows的exe),而且大多数rpm包在官方 repository 中是找不到的。
# root执行 yum install -y epel-release
-
安装redis
# root执行 yum install -y redis
-
启动redis
# root执行 # 使用systemctl管控,服务名:redis systemctl enable redis # 开机自启 systemctl disable redis # 关闭开机自启 systemctl start redis # 启动 systemctl stop redis # 关闭 systemctl status redis # 查看状态
-
放行防火墙,redis使用端口6379
# 方式1(推荐),关闭防火墙 systemctl stop firewalld # 关闭 systemctl disable firewalld # 关闭开机自启# 方式2,放行6379端口 firewall-cmd --add-port=6379/tcp --permanent # 放行tcp规则下的6379端口,永久生效 firewall-cmd --reload
-
进入redis服务
# 执行redis-cli [root@centos ~]# redis-cli 127.0.0.1:6379> set mykey hello OK 127.0.0.1:6379> get mykey "hello" 127.0.0.1:6379>
至此,redis安装完成。
ElasticSearch安装部署
简介
全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 es)是目前全文搜索引擎的首选。
它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。
Elasticsearch简称es,在企业内同样是一款应用非常广泛的搜索引擎服务。
很多服务中的搜索功能,都是基于es来实现的。
安装
-
添加yum仓库
# root执行 # 导入仓库密钥 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch# 添加yum源 # 编辑文件 vim /etc/yum.repos.d/elasticsearch.repo[elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md# 更新yum缓存 yum makecache
-
安装es
yum install -y elasticsearch
-
配置es
vim /etc/elasticsearch/elasticsearch.yml# 17行,设置集群名称 cluster.name: my-cluster# 23行,设置节点名称 node.name: node-1# 56行,允许外网访问 network.host: 0.0.0.0# 74行,配置集群master节点 cluster.initial_master_nodes: ["node-1"]
-
启动es
systemctl start | stop | status | enable | disable elasticsearch
-
关闭防火墙
systemctl stop firewalld systemctl disable firewalld
-
测试
浏览器打开:http://ip:9200/?pretty