部署中间件mysql、redis、nginx

部署中间件

2021-05-23

版本: centos 7.6

一、知识点汇总

1 yum、systemctl命令介绍

https://blog.csdn.net/qq_44817119/article/details/106652942

2 make使用

https://www.w3cschool.cn/mexvtg/

3 Centos 与RHEL关系

CentOS 是将 RHEL 发行的源代码从新编译一次,形成一个可使用的二进制版本,CentOS 可以得到 RHEL 的所有功能,但 CentOS 并不向用户提供商业支持。是免费的REDHAT。

4 服务自启动

需要把该服务的启动脚本文件加入到/etc/init.d/目录下,用chkconfig命令添加该服务。linux服务器启动时,会自动启动init.d文件夹下的服务。

5 离线部署软件一般过程

(1)准备工作 编译工具、创建用户和用户组,安装依赖包等
(2)下载安装包解压、编译源代码安装 ,安装时prefix指定安装路径/usr/local/软件名称
(3)修改环境变量,将该软件的bin,sbin等目录加入环境变量
(4)服务开机自启动(启动脚本)启停 (安装的bin文件路径 配置文件路径 或者用systemctl )
(5)(看版本信息,进程号,端口,pid文件,直接使用该软件等)
(6)修改配置文件,配置具体的功能

二 、mysql

1 下载mysql安装包并上传至服务器

https://dev.mysql.com/downloads/mysql/

mysql8.0

可以用wget、curl下载安装包,也可以下载到笔记本上,用 winscp传上去

2 卸载CentOS7系统自带mariadb

(mariadb,mysql的一个分支)

# 查看系统自带的Mariadb
[root@CDH-141 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
# 卸载系统自带的Mariadb
[root@CDH-141 ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 删除etc目录下的my.cnf
[root@CDH-141 ~]# rm /etc/my.cnf
# 参数--nodeps",也就是说不检查依赖
# 检查mysql是否存在
[root@CDH-141 ~]# rpm -qa | grep mysql
[root@CDH-141 ~]# 

3 解压并安装mysql离线安装包

tar   -xvf   mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
#-x 从压缩的文件中提取文件

#-c 建立新的压缩文件

#-v 显示操作过程

#-f 指定压缩文件
#逐个安装,命令如下,注意安装的顺序,包之间有依赖关系:

#【必须安装】

rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm

rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm

#【非必须安装】

rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm

rpm -ivh mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm

rpm -ivh mysql-community-devel-8.0.16-2.el7.x86_64.rpm

rpm -ivh mysql-community-test-8.0.16-2.el7.x86_64.rpm

#或者*匹配一次安装:
rpm -ivh mysql-community-*.rpm --nodeps --force

RPM方式安装Mysql后的默认安装目录
在这里插入图片描述

4 服务启停

有service(centos6) systemctl(centos7) 两个命令
使用rmp包安装的mysql会被自动加入到系统开机自启动。

# 1 开启服务
systemctl start mysqld
# 2 查看服务状态
systemctl  status  mysqld
# 3 停止服务
service  mysqld stop  或者  systemctl stop  mysqld 
# 4 创建运行mysql的用户并给其授权MySQL目录
groupadd -r mysql && useradd -s /sbin/nologin -r -g mysql mysql
chown -R mysql:mysql /var/lib/mysql/

5 数据库操作

# 1查看临时密码
cat  /var/log/mysqld.log
或者  grep 'temporary password' /var/log/mysqld.log
s(geMY!Vf6zh
# 2 用临时密码登录数据库
mysql  -u root -p  回车
mysql -uroot 密码
输入密码
3 修改mysql 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa@123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Aa@123456' WITH GRANT OPTION;

参考链接:https://www.jb51.net/article/166632.htm

三、redis

1 redis 简介

非关系型数据库:键值对(Key-Value)存储数据库,Redis运行在内存中,也可以持久化到磁盘

可存储的数据类型:值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

从数据库类型看,MYSQL是关系型数据库,redis是键值对缓存数据库

从作用上看,mysql用于持久化,存储数据到硬盘,redis用于存储使用较为频繁的数据到缓存中。

2 离线部署

(1)安装gcc

gcc --version # 检测是否安装gcc  
g++ --version  # 检测是否安装g++   where is g++
yum  install  -y gcc gcc-c++

(2)下载redis包

#在/usr/local/redis 目录下
curl -O http://download.redis.io/releases/redis-5.0.4.tar.gz
# curl是一个利用URL规则在命令行下工作的文件传输工具
#解压
tar  -zxvf  /usr/local/redis-5.0.4.tar.gz

(3)编译安装到指定目录

一般将源码放在/usr/local/src下
安装后的软件放在/usr/local/redis/下

cd redis-5.0.8/src
make all && make install PREFIX=/usr/local/redis
#创建一些目录
mkdir -v /usr/local/redis/{log,data,etc,run}
touch /usr/local/redis/log/redis.log
cp /usr/local/src/redis-5.0.8/redis.conf /usr/local/redis/etc
#修改环境变量
cat >>/etc/profile<< EOF
export PATH="\$PATH:/usr/local/redis/bin"
EOF
source /etc/profile

在这里插入图片描述

(4)修改redis配置文件

cd /usr/local/redis/etc/
sed -i "s/daemonize no/daemonize yes/g" redis.conf
sed -i "s/^bind 127.0.0.1/bind 192.168.1.100/g" redis.conf
sed -i "s/^port 6379/port 7369/g" redis.conf
sed -i "s@pidfile /var/run/redis_6379.pid@pidfile /usr/local/redis/run/redis_7369.pid@g" redis.conf
sed -i "s@logfile ""@logfile "/usr/local/redis/log/redis.log"@g" redis.conf
sed -i "s@^dir ./@dir /usr/local/redis/data@g" redis.conf
sed -i "s@^# requirepass foobared@requirepass 密码@g" redis.conf
sed -i "s@^appendonly no@appendonly yes@g" redis.conf  --根据环境要求开启AOF

###########参数解释
daemoninze 让redis以守护进程方式运行
bind 可以连接到redis的IP  dir路径为数据库文件位置  aof为持久化策略

(5)启动redis

软件启动的一般方法
(1) bin文件路径 配置文件路径
/usr/local/redis/bin/redis-server /usr/local/redis/etc/conf/redis.conf
(2)systemctl 命令启动

(1)到源码目录下启动
cd /usr/local/redis/redis-5.0.4/src
./redis-server
(2)在安装位置的bin目录启动
cd /usr/local/redis/bin
./redis-server
(3)将/usr/local/redis/bin/*  链接到 /usr/local/bin/  
ln  -s  /usr/local/redis/bin/*  /usr/local/bin/  
#链接后即可全局使用/usr/local/redis/bin中的命令,就是redis-server,redis-cli等命令不用在进入到该目录下,可以在任意位置执行,/usr/local/bin目录下放置的是本地下载的软件新增加的命令
# 在任意位置执行
redis-server
即可启动redis

redis中可执行的命令

(6)添加到系统服务并设置开机自启动

系统服务是linux在开机时自动启动,linux系统关机时自动结束的服务。
用户可以把某些服务自定义为系统服务。以下为针对centos7的系统服务启动脚本。

cat >/usr/lib/systemd/system/redis.service<<EOF
[Unit]
Description=redis-server
Requires=network-online.target
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf --daemonize no
Restart=always
RestartSec=5
User=mysql
Group=mysql
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF

(7)测试部署是否成功

#查进程号
ps -aux | grep redis  
#查端口号
netstat  -antp  | grep  6379
#查pid文件
/usr/local/redis/run/redis_6379.pid
[redis的配置文件有pid文件的路径]
#客户端连接测试
/usr/local/redis/bin/redis-cli
或者直接执行redis-cli 命令
set  username  yueliang
get  username
#停止 redis
/usr/local/redis/bin/redis-cli  shutdown 或者 redis-cli shutdown
#在笔记本上用python测试是否可写入数据库(需设置配置文件中的bind 0.0.0.0)
import redis
r = redis.Redis(host='106.12.125.249', password='redis123456', port=6379, db=0);
r.set('name','yueliang') ;
print(r.get('name'));

四、nginx

1 简介 nignx

Nginx是一款轻量级的Web服务器电子邮件(IMAP/POP3)代理服务器

2 离线安装

(1) 准备环境
# 安装编译工具等
yum -y install gcc gcc-c++ automake autoconf libtool make wget net-tools
yum install -y libxslt* libxml2* gd-devel perl-devel perl-ExtUtils-Embed GeoIP GeoIP-devel GeoIP-data
#创建执行nginx的用户和用户组
groupadd -r nginx && useradd -s /sbin/nologin -r -g nginx nginx
mkdir  /usr/local/nginx
chown  -R nginx:nginx  /usr/local/nginx 
(2)下载nginx安装包和nginx的依赖pcre、zlib、openssl
https://nginx.org/download/
# nginx zlib openssl nginx都放置在/usr/local/src目录下
wget   https://nginx.org/download/nginx-1.9.7.tar.gz
# pcre、zlib、openssl同理下载解压
#解压
tar  -zxvf  nginx-1.9.7.tar.gz
(3) 编译安装pcre、zlib、openssl、nginx
##########编译安装pcre、zlib、openssl、nginx
tar -zxvf pcre-8.44.tar.gz
cd pcre-8.44/
./configure  --prefix=/usr/local/pcre
make && make install

tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/pcre
make && make install

tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config  --prefix=/usr/local/openssl
make && make install

#####################创建一堆软链接
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib/
ln -s /usr/local/openssl/lib/libcrypto.so.1.1  /usr/local/lib/
ln -s /usr/local/lib/libssl.so.1.1  /usr/lib/
ln -s /usr/local/lib/libcrypto.so.1.1  /usr/lib/
ln -s /usr/local/lib/libssl.so.1.1  /usr/lib64/
ln -s /usr/local/lib/libcrypto.so.1.1  /usr/lib64/
/usr/local/openssl/bin/openssl version
ldd /usr/local/openssl/bin/openssl
ldconfig -v
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
#############################检查openssl是否安装成功
openssl version
OpenSSL 1.1.1g  31 Mar 2020

##########################################安装nginx
nginx,nginx会调用pcre zlib openssl 在安装nginx是需告诉nginx 这些依赖包的源码位置在哪
cd /usr/local/src/nginx-1.19.1
./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/logs/nginx.pid  \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_random_index_module \
--with-http_degradation_module \
--with-http_secure_link_module \
--with-http_gzip_static_module \
--with-http_perl_module \
--with-pcre=/usr/local/src/pcre-8.44 \
--with-zlib=/usr/local/src/zlib-1.2.11 \
--with-openssl=/usr/local/src/openssl-1.1.1g \
--with-debug \
--with-file-aio \
--with-mail \
--with-mail_ssl_module \
--http-client-body-temp-path=/usr/local/nginx/client_body \
--http-proxy-temp-path=/usr/local/nginx/proxy \
--http-fastcgi-temp-path=/usr/local/nginx/fastcgi \
--http-uwsgi-temp-path=/usr/local/nginx/uwsgi \
--http-scgi-temp-path=/usr/local/nginx/scgi \
--with-stream \
--with-ld-opt="-Wl,-E"

make && make install
(4)服务启停
#将nginx加入环境变量
cat >>/etc/profile<<EOF
NGINX_HOME=/usr/local/nginx
PATH=\$NGINX_HOME/sbin:\$PATH
EOF
source /etc/profile  #刷新环境变量配置文件使其生效

在这里插入图片描述

(5)检查服务状态

在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值