Linux - 安装MySQL
文章目录
- [Linux - 安装MySQL](#Linux - 安装MySQL)
- [一、MySQL 5.7](#一、MySQL 5.7)
-
- [1.1 安装](#1.1 安装)
- [1.2 配置](#1.2 配置)
- [二、MySQL 8.x](#二、MySQL 8.x)
-
- [2.1 安装](#2.1 安装)
- [2.2 配置](#2.2 配置)
- 三、Tomcat安装
-
- [3.1 安装 JDK](#3.1 安装 JDK)
- [3.2 Tomcat(整的不行)](#3.2 Tomcat(整的不行))
- 四、Nginx
-
- [4.1 安装](#4.1 安装)
- 五、RabbitMQ
-
- [5.1 安装](#5.1 安装)
- 六、Redis
-
- [6.1 安装](#6.1 安装)
一、MySQL 5.7
1.1 安装
我们使用yum install mysql 是无法将数据库安装的,因为yum所连接的远程仓库中并没有我们所要的mysql 5.7
所以我们必须配置一个额外的yum远程仓库
-
配置yum仓库
需要联网才能操作
sh
# 更新秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装Mysql yum库 (也就是从网络中获取这个软件包,并且把他安装)
# 我们通过网络去安装这个软件包,就会给我们的yum程序去安装Mysql的样本仓库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm


rpm软件包,类似Windows系统中的exe
- 使用yum安装MySQL
当执行完第一步后,就可以使用yum安装MySQ了
安装MySQL社区版的服务,需要联网操作
sh
yum -y install mysql-community-server

- 启动MYSQL,并配置开机自启动
MySQL安装完成后,会自动配置名称叫做:mysqld的服务,可以被systemctl所管理
sh
#启动
systemctl start mysqld
#开机自启
systemctl start mysqld
- 检查MySQL的运行状态
sh
systemctl status mysqld

1.2 配置
上面是安装完成,下面开始对MySQL进行初始化
也就是账号、密码、以及远程登录等等
主要配置管理员用户的root的密码以及配置允许远程登录的权限
- 获取MySQL的初始密码
/var/log/mysqld.log文件是安装运行过程中所产生的一个日志文件,初始密码会包含在这个文件里面
我们通过gerp命令在文件中过滤一下temporary password关键字
sh
grep 'temporary password' /var/log/mysqld.log
目前MySQL的初始密码是 O!R5/eP#qz0b

- 登录MySQL数据库系统
sql
mysql -uroot -p
-u,登录的用户,MySQL数据库的管理员同Linux一样,是root
-p,表示使用密码登录
执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库

- 修改root密码
密码需要符合大于8位,有大写字母,有特殊符号,不能是连续简单的语句,如123
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

也可以配置简单的root密码,但是需要降低MySQL的密码安全级别
sql
#密码安全级别低
set global validate_password_policy=LOW;
#密码长度最低4位
set global validate_password_length=4;
#修改密码为简单密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';

- 配置root用户运行时的远程登录
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登录MySQL系统
允许root远程登录会带来安全风险
sh
# 授权root远程登录
# IP地址即允许登录的IP地址,也可以写成%,表示允许任何地址
# 密码表示给远程登录独立设置密码,和本地登录的密码可以不同,看自己的喜好,都是可以的
grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;
# 刷新权限,生效
flush privileges;

- 退出MySQL控制台页面
sh
# 命令退出
exit
# 快捷键退出
ctrl+d
- 检查端口
MySQL默认绑定3306端口,沃恩可以通过端口的占用检查MySQL的端口
sh
netstat -anp | grep 3306

二、MySQL 8.x
注意!安装操作需要root权限
在配置root密码和远程登录时候和5.7有点不一样
2.1 安装
- 配置yum仓库
sh
# 更新秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装Mysql yum库 (也就是从网络中获取这个软件包,并且把他安装)
# 我们通过网络去安装这个软件包,就会给我们的yum程序去安装Mysql的样本仓库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
- 使用yum安装MySQL
sh
# yum安装MySQL
yum -y install mysql-community-server
- 安装完成后,启动MySQL并配置开机自启动
sh
#启动
systemctl start mysqld
#开机自启
systemctl enable mysqld
- 检查MySQL的运行状态
sh
systemctl status mysqld
2.2 配置
主要修改root密码和允许root远程登录
- 获取MySQL的初始密码
/var/log/mysqld.log文件是安装运行过程中所产生的一个日志文件,初始密码会包含在这个文件里面
我们通过gerp命令在文件中过滤一下temporary password关键字
sh
grep 'temporary password' /var/log/mysqld.log
- 登录MySQL数据库系统
sql
mysql -uroot -p
-u,登录的用户,MySQL数据库的管理员同Linux一样,是root
-p,表示使用密码登录
执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
- 修改root密码
密码需要符合大于8位,有大写字母,有特殊符号,不能是连续简单的语句,如123
sh
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
- 配置root的简单密码
sh
#密码安全级别低
set global validate_password_policy=LOW;
#密码长度最低4位
set global validate_password_length=4;
- 允许root远程登录,并设置远程登录密码
sh
#第一次设置root远程登录,并配置远程密码使用如下SQL命令
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
#后续修改密码使用如下SQL命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
- 退出MySQL控制台页面
sh
# 命令退出
exit
# 快捷键退出
ctrl+d
- 检查端口
MySQL默认绑定3306端口,沃恩可以通过端口的占用检查MySQL的端口
sh
netstat -anp | grep 3306

三、Tomcat安装
Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等
简单来说,Tomcat是一个WEB应用程序的托管平台,可以让用户编写的WEB应用程序,被Tomcat所托管,并提供网站服务
即让用户开发的WEB应用程序,变成可以被访问的网页
3.1 安装 JDK
需要JDK版本最低位JDK8或更高的版本
- 下载JDK软件
地址:https://www.oracle.com/java/technologies/downloads
我下载的是这个

- 将下载完成的包放入到root用户里面

我们发现虚拟机中已经有了这个文件了

- 对JDK进行解压缩
首先构建一个文件夹,以后凡是能指定安装目录的软件,我们都放在这个文件夹里
sh
mkdir -p /export/server
进行解压
sh
tar -zxvf jdk-8u411-linux-x64.tar.gz -C /export/server
切换到对应的目录,发现有这个文件
sh
cd /export/server

切换到jdk里面去
sh
cd jdk1.8.0_411/
ls -l

里面有一个bin的文件夹,里面存放我们的可执行文件
里面有一个Java程序

执行一下"Java"程序,看一下目前的版本

- 配置JDK的环境变量
sh
vim /etc/profile
在最下面填写如下所示的内容
sh
export JAVA_HOME=/export/server/jdk1.8.0_411
export PATH=$PATH:$JAVA_HOME/bin
之后进行刷新一下
sh
source /etc/profile
也可以输出看一下
所在的位置

但是现在有一个问题,/usr/bin是系统中Java所在的位置,/export/server/jdk1.8.0_411是我们配置

我们需要将我们的Java替代系统的Java,将系统自带的删除
sh
rm -f /usr/bin/java
帮我们自己安装的Java软连接到/usr/bin
sh
ln -s /export/server/jdk1.8.0_411/bin/java /usr/bin/java
虽然此时which Java的路径没有变,本质是/export/server/jdk1.8.0_411/bin/java

此时再执行以下Java命令,看看有没有反应
sh
java -version

3.2 Tomcat(整的不行)
建议使用非root用户安装并启动
可以创建一个用户:tomcat用以部署
为什么要使用非root用户?
Tomcat是提供网络服务的,可以托管出一个网站,如果tomcat以root用户启动的话,网站此时被别人黑了,别人也相当于拿到root权限了
- 放行tomcat需要使用的8080端口的外部访问权限
CentOS系统默认开启了防火墙,阻止外部网络流量访问系统内部
所以如果Tomcat可以正常使用,需要对Tomcat默认使用的8080度那口放行
放行有两种方式
- 关闭防火墙
- 配置防火墙规则,放行端口
sh
# 方式1
#关闭防火墙
systemctl stop firewalld
#停止防火墙开机自启
systemctl disable firewalld
#方式2
#放行8080端口的tcp访问
firewall -cmd -add-port=8080/tcp -permanent
#重新载入防火墙规则使其生效
firewall -cmd --reload
- 以root用户操作,创建tomcat用户
sh
#使用root用户操作
useradd tomcat
#可选,为Tomcat用户配置密码,不设置也行
passwd tomcat

- 下载Tomcat安装包
sh
# 使用root用户操作
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
# 如果出现https相关错误,可以使用--no-check-certificate选项
wget --no-check-certificate https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
也可以在自己电脑上下载后复制到虚拟机中
- 解压Tomcat安装包
shell
# 使用root用户操作,否则无权限解压到/export/server内,除非修改此文件夹权限
tar -zxvf apache-tomcat-10.0.27.tar.gz -C /export/server
- 创建Tomcat软链接
shell
# 使用root用户操作
ln -s /export/server/apache-tomcat-10.0.27 /export/server/tomcat
- 修改tomcat安装目录权限
shell
# 使用root用户操作,同时对软链接和tomcat安装文件夹进行修改,使用通配符*进行匹配
chown -R tomcat:tomcat /export/server/*tomcat*
但是我看视频里是这么操作的

- 切换到tomcat用户
shell
su - tomcat
- 启动tomcat
shell
/export/server/tomcat/bin/startup.sh
- tomcat启动在8080端口,可以检查是否正常启动成功
shell
netstat -anp | grep 8080

10.打开浏览器,输入:
使用主机名(需配置好本地的主机名映射)或IP地址访问Tomcat的WEB页面

四、Nginx
Nginx是一个高性能的HTTP和反向代理的web服务器,同时也提供了MAP/POP3/SMTP服务
同Tomcat一样,Nginx可以托管用户编写的web应用程序成为可访问的网页服务,同时也可以作为流量代理服务器,控制流量的中转
4.1 安装
Nginx同样配置额外的yum仓库,才可以使用yum安装
安装Nginx的操作需要root身份
- 安装yum依赖程序
sh
# root执行
yum install -y yum-utils

- 手动添加,nginx的yum仓库
之前我们添加仓库是命令添加的,现在需要手动添加一下
yum程序使用的仓库配置文件,存放在:/etc/yum.repos.d
内。
下图中repo结尾的文件都是yum仓库的配置

shell
# root执行
# 创建文件使用vim编辑
vim /etc/yum.repos.d/nginx.repo
# 填入如下内容并保存退出
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
通过如上操作,我们手动添加了nginx的yum仓库
baseurl记录了一个网站,这个网站就是yum程序使用的,可以从里面找到相应的安装包以及相关的依赖程序
- 通过yum安装最新稳定版的nginx
shell
# root执行
yum install -y nginx

- 启动
shell
# nginx自动注册了systemctl系统服务
systemctl start nginx # 启动
systemctl stop nginx # 停止
systemctl status nginx # 运行状态
systemctl enable nginx # 开机自启
systemctl disable nginx # 关闭开机自启


- 配置防火墙放行
nginx默认绑定80端口,需要关闭防火墙或放行80端口
shell
# 方式1(推荐),关闭防火墙
systemctl stop firewalld # 关闭
systemctl disable firewalld # 关闭开机自启
# 方式2,放行80端口
firewall-cmd --add-port=80/tcp --permanent # 放行tcp规则下的80端口,永久生效
firewall-cmd --reload # 重新加载防火墙规则
- 启动后浏览器输入Linux服务器的IP地址或主机名即可访问
ps:80端口是访问网站的默认端口,所以后面无需跟随端口号
显示的指定端口也是可以的比如:

五、RabbitMQ
5.1 安装
rabbitmq在yum仓库中的版本比较老,所以我们需要手动构建yum仓库
- 准备yum仓库
shell
# 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/gpgkey
https://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/gpgkey
https://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/gpgkey
https://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
shell
# root执行
yum install erlang rabbitmq-server -y
erlang是RabbitMQ的源码语言,上面的命令将erlang、RabbitMQ两个程序一次性安装了

sh
Installed:
erlang.x86_64 0:23.3.4.11-1.el7 rabbitmq-server.noarch 0:3.10.0-1.el7
- 启动
shell
# 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个端口
shell
# 方式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管理控制台
shell
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins是我们安装MQ后自带的一个程序,通过他来启动后台

- 添加admin用户,并赋予权限
shell
#添加用户 zhangjingqi是密码
rabbitmqctl add_user admin 'zhangjingqi'
#给admin配置最大的权限
rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*"
#给admin设置标签
rabbitmqctl set_user_tags admin administrator

- 浏览器打开管理控制台

六、Redis
6.1 安装
- 配置EPEL仓库
EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。EPEL则为服务器版本提供大量的rpm包(yum程序所使用的程序安装包,类似Windows的exe),而且大多数rpm包在官方 repository 中是找不到的。
shell
# root执行
yum install -y epel-release

- 安装redis
shell
# root执行
yum install -y redis

- 启动redis
shell
# root执行
# 使用systemctl管控,服务名:redis
systemctl enable redis # 开机自启
systemctl disable redis # 关闭开机自启
systemctl start redis # 启动
systemctl stop redis # 关闭
systemctl status redis # 查看状态


- 放行防火墙,redis使用端口6379
shell
# 方式1(推荐),关闭防火墙
systemctl stop firewalld # 关闭
systemctl disable firewalld # 关闭开机自启
# 方式2,放行6379端口
firewall-cmd --add-port=6379/tcp --permanent # 放行tcp规则下的6379端口,永久生效
firewall-cmd --reload
- 进入redis服务
shell
# 执行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>
