部署中间件mysqlredisnginx

Posted mingyuewu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署中间件mysqlredisnginx相关的知识,希望对你有一定的参考价值。

部署中间件

2021-05-23

一、知识点汇总

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 服务自启动

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

5 离线部署软件一般过程

(1)检查软件是否已存在
(2)下载安装包解压
(3)编译源代码安装
(4)修改配置文件
(5)服务启停
(6)检查软件是否部署成功(看版本信息,进程号,端口号)
(7)将服务加入开机自启动( systemctl enable 或将启动脚本复制到init.d文件夹下)

mysql可以直接使用命令systemctl加入开机自启动,但redis要手动将启动脚本加入init.d文件夹下,why?)

二 、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 ~]# 
# 检查mysql组和用户是否存在,如无则创建
[root@CDH-141 ~]# cat /etc/group | grep mysql
[root@CDH-141 ~]# cat /etc/passwd | grep mysql 

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

4 服务启停

有service(旧) systemctl(新) 两个命令

# 1 查看服务状态
systemctl   status  mysqld
# 2 停止服务
service  mysql stop  或者  systemctl stop  mysql  
# 3 初始化数据库
mysqld --initialize  --console
# 4 目录授权
chown -R mysql:mysql /var/lib/mysql/
# 5 启动mysql服务
systemctl  start   mysqld
systemctl  status  mysqld
systemctl enable mysqld  #开机自启

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 '123456$wmy'

报错:Your password does not satisfy the current policy requirements
修改密码强度:
set global validate_password_policy=0;
Unknown system variable 'validate_password_policy'
系统说它不认识 validate_password_policy,难道是版本升级换关键字了。。。。
 SHOW VARIABLES LIKE 'validate_password%';
set global validate_password_policy=LOW;


参考链接:https://www.cnblogs.com/quchunhui/p/11115339.html

https://www.cnblogs.com/yy3b2007com/p/10497787.html(这个比较全)

或者修改配置文件,设置不需要密码登录

# 1 修改配置文件
vim /etc/my.cnf
# 加入下面三行,
# Disabling symbolic-links is recommended to prevent assorted security risks
skip-grant-tables   #添加这句话,这时候登入mysql就不需要密码
symbolic-links=0

#2开启mysql服务:
service mysqld start
#3 空密码登录mysql:
mysql -u root -p    #输入命令回车进入,出现输入密码提示直接回车

#4设置mysql密码
mysql> set password for root@localhost = password('123456');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges; #更新权限
Query OK, 0 rows affected (0.00 sec)
mysql> set password for root@localhost = password('123456'); 
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>flush privileges; #更新权限
mysql>quit; #退出
service mysqld stop # 停止mysql服务, 恢复mysql配置
vim /etc/my.cnf   #修改配置文件
# Disabling symbolic-links is recommended to prevent assorted security risks
# skip-grant-tables # 注释掉这句话
symbolic-links=0
service mysqld start # 启动mysql服务
mysql -uroot -p # 输入新密码登录

#5 设置mysql开机自启
systemctl  enable mysqld

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

三、redis

1 redis 简介

非关系型数据库:键值对(Key-Value)存储数据库,。

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

速度快:Redis运行在内存中,也可以持久化到磁盘

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

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

2 离线部署

(1)安装gcc

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

(2)下载redis包

#在/usr/local 目录下
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)编译安装到指定目录

cd  redis-5.0.4  #进入解压后的redis安装包
make MALLOC=libc  #安装包里自带makefile文件,等号旁边不能有空格
cd src && make install#这句不用写

(4)启动redis

cd /usr/local/redis/redis-5.0.4/src
./redis-server

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

mkdir  /etc/redis
# 复制redis的初始配置文件,名称必须是6379.conf
cp  /usr/local/redis/redis-5.0.4/redis.conf  /etc/redis/6379.conf
#修改redis启动为后台启动,设置密码,可以在末行模式下,使用/ 查找
vim  /etc/redis/6379.conf
将 daemonize  设置为 yes
将 requirepass 设置为 redis12345
# 将启动文件拷贝到init.d中(自启动)
cp  /usr/local/redis-5.0.4/utils/redis_init_script  /etc/init.d/redisd
# 修改启动脚本参数
vim  /etc/init.d/redisd
	#添加
	# chkconfig: 2345 10 90
	# description: Start and Stop redisd
	#修改,redis的各种路径:
	EXEC=/usr/local/redis/redis-5.0.4/src/redis-server
	CLIEXEC=/usr/local/redis/redis-5.0.4/src/redis-cli
	PIDFILE=/usr/local/redis/redis-5.0.4/redis_${REDISPORT}.pid
#添加启动脚本执行权限
chmod  +x /etc/init.d/redisd
# 增加系统服务
chkconfig --add  redisd
chkconfig  --list  redisd

(6)测试部署是否成功

#启动 redis 服务测试
service  redisd start
#查看 redis 状态
ps -aux | grep redis  #使用 service  redisd status 显示不出来
#在笔记本上用python测试是否可写入数据库
import redis
r = redis.Redis(host='106.12.125.249', password='redis123456', port=6379, db=0);
r.set('name','yueliang') ;
print(r.get('name'));

在这里插入图片描述

netstat 可以看到6379端口号,ps也看到redis-server进程,但 systemctl status redisd 显示 inactive ,python用 redis 库函数,向数据库中写入数据也没反应。所以它到底启动成功了吗?

服务启停命令

systemctl start redis  #启动redis
systemctl stop redis
systemctl enable redis  #设置开机自启
systemctl disable redis # 关闭开机自启
systemctl status redis  # 查看运行状态

四、nginx

1 简介 nignx

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

2 部署

(1) 安装依赖包
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
(2)下载nginx安装包
https://nginx.org/download/

wget   https://nginx.org/download/nginx-1.9.7.tar.gz

#解压

tar  -zxvf  nginx-1.9.7.tar.gz
(3) 编译安装
#make  知识不熟悉
./configure   --prefix=/usr/local/nginx
make  
make  install
(4)测试是否安装成功
cd /usr/local/nginx

./sbin/nginx -t

出现
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

参考链接:https://www.jianshu.com/p/e4993ef813b4

https://blog.csdn.net/xyy1028/article/details/103746073

以上是关于部署中间件mysqlredisnginx的主要内容,如果未能解决你的问题,请参考以下文章

导致资产预编译在heroku部署上失败的代码片段

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

Spring Rest 文档。片段生成时 UTF-8 中间字节无效 [重复]

Sublime Text3自定义代码片段

无法更新 View Pager 中的中间片段。

Android - 从堆栈中间删除特定片段不起作用