部署中间件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的主要内容,如果未能解决你的问题,请参考以下文章
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段