zoukankan      html  css  js  c++  java
  • 第六节:Linux之基于Centos系统安装Redis、MySQL、Nginx

    一. Redis的安装

    1. 准备

    (1). 宿主机:centos 8.0

    (2). Redis源码:【压缩包: redis-5.0.0.tar.gz】 需要自行编译。 (PS:这个压缩包可以直接Centos系统中在线下载 或者去Redis官网先下载,然后copy到Centos系统中)

    下载地址:

      官网:https://redis.io/

      中文版:http://www.redis.cn/

    注:Redis的安装需要下载源码,自行准备环境,进行编译安装。

    (3). gcc环境:redis是C语言开发的,安装redis需要先将官网下载的源码进行编译,编译依赖 gcc 环境。

    2. 安装步骤

    (1). 安装gcc环境

     通过指令【yum install gcc-c++】安装gcc环境,安装过程中需要两次输入y,分别是确认下载和确认安装。

        两次确认:

     

     最终安装成功:

    (2). 安装Redis

    A. 去Redis官网下载压缩包,然后Copy到Centos宿主机中,下载地址为:http://download.redis.io/releases/  ,这里我们以 【5.0.0】版本为例进行演示。

    PS: 这里我们直接在Linux系统中在线下载压缩包,运行指令:【wget http://download.redis.io/releases/redis-5.0.0.tar.gz

    B. 解压到当前目录,运行下面指令 ,解压后的文件如下:

    【tar -zxvf redis-5.0.0.tar.gz】

     

     C. 切换到redis目录,运行make指令进行编译 。

    【cd redis-5.0.0/】

    【make】  (ps:make指令可能需要安装,根据提示,输入y确认安装即可)

     

     D. 安装redis到指令目录

    【cd redis-5.0.0/】

    【make PREFIX=/usr/local/redis install  】

    PS:make install安装完成后,会在/usr/local/redis/bin目录下生成下面几个可执行文件,它们的作用分别是:

      redis-server:Redis服务器端启动程序

      redis-cli:Redis客户端操作工具。也可以用telnet根据其纯文本协议来操作

      redis-benchmark:Redis性能测试工具

      redis-check-aof:数据修复工具

      redis-check-dump:检查导出工具

    (3). 配置Redis

      进入redis原先的解压目录,把里面的配置文件 【redis.conf】 拷贝到  /usr/local/redis/bin 目录下。

    【cd redis-5.0.0/】

    【cp redis.conf /usr/local/redis/bin】

    (4). 启动Redis

     A. 进入到  /usr/local/redis/bin  安装目录, 【cd   /usr/local/redis/bin

     B. 修改redis.conf,把daemonize no 改为daemonize yes,改为守护进程,即后台程序启动,否则关闭窗口redis服务就关闭了 (可选)

     C. 运行指令【./redis-server redis.conf】 进行启动,如下图表示启动成功。PS:   ./表示当前目录

    (5). 复制一个窗口,启动链接客户端 【./redis-cli】,可以进行redis操作。

    (6). 关闭redis服务【./redis-cli shutdown】,

     进行链接,连接失败;重新启动redis服务./redis-server redis.conf】,进行链接,链接成功。

    如下图:

    3. 测试 

    如何在外部链接linux上的redis?

    (1). 将 bind 127.0.0.1 注释掉。

    (2). 关闭保护模式,即将 protected-mode 改为 no。 

    PS:以上两个指令执行完成后,要重启一下redis服务。 

    (3).首先需要在centos宿主机上关闭防火墙,从而外部可以访问redis的6379端口。

    #添加6379端口永久开放
    sudo firewall-cmd --add-port=6379/tcp --permanent
    #重启防火墙
    firewall-cmd --reload

    (4). 使用客户端工具进行连接,连接成功。

     

    4. 其它配置和指令

    (1). 设置密码

     默认链接redis是没有密码的,我们通过修改 redis.conf 文件中 requirepass 节点,来设置密码,如下图:

    默认:

    修改密码为123456:

    重新链接: 

    在本地电脑上通过客户端连接: 【 redis-cli -h 192.168.137.201 -p 6379 -a 123456】

    (2). 改为守护进程

     修改redis.conf,把daemonize no 改为daemonize yes,改为守护进程,即后台程序启动,否则关闭窗口redis服务就关闭了 

    参考文档:https://blog.csdn.net/lc1010078424/article/details/78295482 (添加服务)

                       https://blog.csdn.net/weixin_40605573/article/details/89324038 

    二. MySQL的安装

    1. 准备

    (1). 宿主机:centos8.0

    (2). MySQL安装包:MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar   (这里安装的是5.7版本)

    PS:这里使用的安装包是针对centos系统特制的RPM包,通过RPM相关指令进行安装,当然也可以通过其他类型的安装包进行编译安装。

    下载地址:https://dev.mysql.com/downloads/mysql/ ,这里演示的是下载整个压缩包,解压后有很多组件的rmp包,当然我们也可以根据需要直接下载对应的组件进行安装,比如我只下载Server的rpm包。

    2. 安装步骤

    前提:删除一下系统自带的mysql

    (1). 把安装包copy到centos的宿主机中

    (2). 在当前目录下进行解压,指令如下

    【tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar】解压出来一堆包,我们根据需要安装即可。

    (3). 安装client端 和 server 端

    经验:server需要依赖client端,所以server端最后安装,client端还需要依赖common和libs,而且client还需要libncurses和libtinfo相关,所以我们在rmp包的根目录下运行指令,严格按照下面的顺序进行。

     【rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm】

     【rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm】

     【yum install libncurses* -y】

     【yum install libtinfo* -y】

     【rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm】

     【rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm】

    截止此处全部安装完成。

    (4). 启动服务并查看状态

     A. 启动服务: 【systemctl start mysqld】

     B. 查看状态:【systemctl status mysqld】

     

    (5). 必备的配置

     A. 修改密码策略,否则无法随心所以的修改密码

     找到mysql的配置文件,位于 /etc/my.conf , 在这个配置文件里,还能看见其它几个配置的路径,如下图,然后添加下面代码,修改完后,重启一下mysql服务【systemctl restart mysqld】

    注:以下两行代码任意一行都可以,可以直接关闭密码策略即可。

    #添加validate_password_policy配置 选择0(LOW)1(MEDIUM)2(STRONG)其中一种
      validate_password_policy=0
    #关闭密码策略
      validate_password = off

     B. 查看随机密码

     默认root账号会生成一个随机密码,通过指令【grep "password" /var/log/mysqld.log 】查看,如下图,密码为:  wIsu.rk_d74c 

     C. 修改密码(这里改为123456)

       使用内置客户端进行登录,mysql -uroot -p,然后输入上面密码:wIsu.rk_d74c ,如下图说明登录成功。 或者直接输入指令:mysql -uroot -pwIsu.rk_d74c】

       将root账号的密码改为:123456,指令为【set password=password('123456');】 注意在mysql中的指令结尾必须有分号!!   

          或者运行指令:【ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';】进行密码修改

       输入指令【exit;】,退出

       重新输入指令【mysql -uroot -p123456】,如下图:登录成功

     

     D. 设置允许远程访问

      ①. 运行下面指令,运行所有ip用root账号,密码为123456进行访问mysql。

    grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
    flush privileges; 

      注:这里的密码可以不用和root的密码一样,比如root的密码是123456,这里远程访问的密码可以用1234,详细说明见后面的剖析。

     ②. 查看防火墙状态,开发3306端口,或者直接关闭防火墙。

    #查看防火墙状态
    service firewalld status 
    
    #方案1,开放3306端口,并重启
    sudo firewall-cmd --add-port=3306/tcp --permanent
    #重启防火墙
    firewall-cmd --reload
    
    #方案2:直接关闭防火墙
    service firewalld stop 

    (6). 测试

     使用客户端远程连接,如下图,连接成功。

    (7). 指令总结 

     【systemctl status mysqld】    查看mysql状态

     【systemctl stop mysqld 】     关闭mysql服务

     【systemctl start mysqld】     开启mysql服务

     【systemctl restart mysqld】   重启服务

    3.其它配置指令说明

    (1). 授权远程访问详解

    方法1:授权法

    -- 允许特定ip访问
    grant all privileges on *.* to 'root'@'192.168.137.202'identified by '123' with grant option;
    
    --允许所有ip访问
    grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
    
    --执行完上述后,都要刷新生效
    flush privileges; 

     说明:以上指令都是对root账号授权远程访问,登录密码为:123,特别注意这个密码可以和 root本来server端不一样,比如:本来server端root密码为123456,这里远程授权设置的是123,那么远程客户端登录就只能使用123密码,使用123456密码无法连接;通过set password把root的服务密码改为12345678,不影响远程授权登录,远程客户端仍然可以通过123进行访问。

     实质:上述操作本质上是在mysql中自带的一个mysql库中user表中插入了一条记录。如下图:

    方法2:直接操作mysql下的user表

    --可以更新字段
    --特定ip
    update user set host = '192.168.1.49' where user = 'root'; 
    --所有ip
    update user set host = '%' where user = 'root'; 
    
    --也可以直接插入一条新纪录 
    --刷新生效
    flush privileges; 

    说明:上述更新字段的那种方式远程登录使用的密码为root自身server的密码,也可以插入一条记录,可以使用一个新的密码,与root原来server端密码不同。

    (2). 配置字符编码 

     连接上mysql,输入指令【show variables like '%character%';】 ,查看原来的各种编码,如下图,这里我们把 character_set_server 也改成utf8,否则容易乱码。

     修改 /etc/my.cnf, 增加下面代码,然后重启mysql服务 【systemctl restart mysqld】,重新查看编码,设置成功。

    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'

    (3). 忘记root密码怎么办?

        详见:https://www.cnblogs.com/yaopengfei/p/13798785.html

    三. Nginx的安装

    1.准备

    (1). 宿主机:centos 8.0

    (2). Nginx源码:需要去官网下载源码copy到centos系统中,自行编译安装。这里使用【nginx 1.19.3】版本。

        下载地址:http://www.nginx.org/

    (3). 编译Nginx所需要的的环境:

     A. gcc环境:因为是C语言开发的。

     B. pcre: 是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。

     注:pcre-devel 是使用 pcre 开发的一个二次开发库,nginx 也需要此库。

     C. zlib:zlib库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。

     D. OpenSSL: 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。

    2. 安装步骤

    (1). 安装编译所需的环境

     A. 【yum install -y gcc-c++】

      图如上面redis安装一样。

     B.【yum install -y pcre pcre-devel】

     C. 【yum install -y zlib zlib-devel】

     D. 【yum install -y openssl openssl-devel】

    (2). 将下载好的Nginx压缩包上传到Centos的工作目录下,并进行解压缩 【tar -zxvf  nginx-1.19.3.tar.gz】,解压后如下图:

    (3). 进入nginx-1.19.3目录   使用 configure 命令创建1个 MakeFile 文件.

    【cd nginx-1.19.3/】,然后运行下面指令,直接copy进去,敲击回车,执行即可

    ./configure 
    --prefix=/usr/local/nginx 
    --pid-path=/var/run/nginx/nginx.pid 
    --lock-path=/var/lock/nginx.lock 
    --error-log-path=/var/log/nginx/error.log 
    --http-log-path=/var/log/nginx/access.log 
    --with-http_gzip_static_module 
    --http-client-body-temp-path=/var/temp/nginx/client 
    --http-proxy-temp-path=/var/temp/nginx/proxy 
    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
    --http-scgi-temp-path=/var/temp/nginx/scgi

    执行完成后,nginx目录下多了一个MakeFile文件

    PS:代码解释 

    ----  知识点小贴士 ----
      Makefile是一种配置文件, Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,
    哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
    ---- 知识点小贴士 --- ./configure --prefix=/usr 指向安装目录 --sbin-path=/usr/sbin/nginx        指向(执行)程序文件(nginx) --conf-path=/etc/nginx/nginx.conf          指向配置文件 --error-log-path=/var/log/nginx/error.log            指向log --http-log-path=/var/log/nginx/access.log             指向http-log --pid-path=/var/run/nginx/nginx.pid           指向pid --lock-path=/var/lock/nginx.lock         (安装文件锁定,防止安装文件被别人利用,或自己误操作。) --user=nginx --group=nginx --with-http_ssl_module                启用ngx_http_ssl_module支持(使支持https请求,需已安装openssl) --with-http_flv_module                启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件) --with-http_stub_status_module                      启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态) --with-http_gzip_static_module                        启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流) --http-client-body-temp-path=/var/tmp/nginx/client/              设定http客户端请求临时文件路径 --http-proxy-temp-path=/var/tmp/nginx/proxy/                 设定http代理临时文件路径 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/                 设定http fastcgi临时文件路径 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi                  设定http uwsgi临时文件路径 --http-scgi-temp-path=/var/tmp/nginx/scgi                   设定http scgi临时文件路径 --with-pcre 启用pcre库

    (4). 在nginx-1.19.3目录下,执行 【make】指令,进行编译。

    (5). 安装Nginx(指定安装路径)

     在nginx-1.19.3目录下执行下面的安装指令

    make PREFIX=/usr/local/nginx install

     如下图:

    (6). 启动前准备

    A. 启动 nginx 之前,上边MakeFile温江将临时文件目录指定为/var/temp/nginx/client, 需要在/var 下创建此目录

    mkdir /var/temp/nginx/client -p

    B. 进入到Nginx安装目录下的sbin命令目录

    cd /usr/local/nginx/sbin

    (7). 启动

    ./nginx

     如图:

     (8). 关闭防火墙或者开放80端口

    #添加80端口永久开放
    sudo firewall-cmd --add-port=80/tcp --permanent
    #重启防火墙
    firewall-cmd --reload

    (9). 其它指令

    A. 查看nginx进程 【ps aux|grep nginx】

    B. 关闭Nginx

    ./nginx -s stop
    #或
    ./nginx -s quit

    C. 重启nginx

    ./nginx -s reload

    3. 测试

     访问默认的80端口,输入:http://192.168.137.201

     

    4. 常见错误处理

    (1). 启动nginx的时候报错,如下图,缺少文件了。

    解决方案:到对应目录下创建相应文件即可。

    !

    • 作       者 : Yaopengfei(姚鹏飞)
    • 博客地址 : http://www.cnblogs.com/yaopengfei/
    • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
    • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
     
  • 相关阅读:
    BZOJ 1036 树的统计
    codevs 4712 gcd与lcm问题
    codevs 1574 矩阵乘法
    Python定时任务框架APScheduler
    PHP集成支付宝快速实现充值功能
    玩转Web之easyui(二)-----easy ui 异步加载生成树节点(Tree),点击树生成tab(选项卡)
    玩转Web之easyui(一)-----easy ui datagird 分页
    Android访问服务器(TOMCAT)乱码引发的问题
    工厂方法模式--结合具体例子学习工厂方法模式
    简单工厂模式--结合实例学习简单工厂模式
  • 原文地址:https://www.cnblogs.com/yaopengfei/p/13766324.html
Copyright © 2011-2022 走看看