Linux之MySql,nginx的安装配置及项目的部署

MySql的安装及环境配置

  • 官网下载MySQL5.7.30的RPM安装包

  • 卸载CentOS7系统自带的mariadb

    1. 先检查有没有安装mariadb
      rpm -qa|grep mariadb
    2. 我有个mariadb-libs-5.5.56-2.el7.x86_64,把它给卸载了
      rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
    3. 再次查看,mariadb已删除
      rpm -qa|grep mariadb
  • 安装libaio、perl、net-tools库,要不就会报错 balabala…
    yum -y install libaio perl net-tools

  • rz上传安装包到/usr/local/mytools

  • 在这里插入图片描述

  • 建个目录并将安装文件解压到此目录
    mkdir /usr/local/mysql-5.7.30
    cd /usr/local/mytools
    tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql-5.7.30
    在这里插入图片描述

  • 进入目录准备安装
    cd /usr/local/mysql-5.7.30

    1. 开始安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度
      rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
      rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
      rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
      rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
      在这里插入图片描述
  • 启动mysqld服务
    systemctl start mysqld

    1. 查看mysqld的运行状态
      systemctl status mysqld
      在这里插入图片描述

注1:安装完成后的服务名叫mysqld
systemctl start mysqld

  • 登录mysql修改密码

    1. 查询生成的临时密码
      grep “password” /var/log/mysqld.log
      在这里插入图片描述

    2. 登录mysql
      mysql -u root -p

    3. 查看mysql初始的密码策略:(因为是本地测试环境,所以想把密码改的简单点)
      SHOW VARIABLES LIKE ‘validate_password%’;

    4. 设置密码校验策略(0 or LOW),要不密码太LOW不让你过
      set global validate_password_policy=0;

    5. 设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)
      set global validate_password_length=4;

    6. 更新密码
      set password = password(“1234”);

    7. 输入后使修改生效还需要下面的语句
      FLUSH PRIVILEGES;

    8. 可以退出,试试用新密码重新登录
      quit
      在这里插入图片描述

  • 修改mysql的字符集为utf8

    1. 登陆mysql之后,可以通过如下命令查看mysql的字符集
      show variables like ‘chara%’;
      在这里插入图片描述

    quit;

    (以下命令为linux命令)
    2. 修改配置文件设置 MySQL 字符集为 UTF-8
    vim /etc/my.cnf
    3. [mysqld]
    在mysqld最下面加入二行代码
    character-set-server=utf8
    collation-server=utf8_general_ci

    1. client为自己添加
      [client]
      default-character-set=utf8
      在这里插入图片描述
      在这里插入图片描述
  • Centos7下无法远程连接mysql数据库

    1. 数据库没有授权,允许以root身份远程登录mysql

    重复修改密码的三条命令
    SHOW VARIABLES LIKE ‘validate_password%’;
    set global validate_password_policy=0;
    set global validate_password_length=4;

    GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘1234’ WITH GRANT OPTION;
    在这里插入图片描述

    输入后使修改生效还需要下面的语句
    FLUSH PRIVILEGES;

    1. 服务器防火墙没有开放3306端口
      firewall-cmd --zone=public --add-port=3306/tcp --permanent
      firewall-cmd --reload
      firewall-cmd --list-port
      firewall-cmd --query-port=3306/tcp
      在这里插入图片描述
  • mysql数据库数据导出/导入
    Navicat导出表结构及少量数据

  • ssh2项目部署到CentOS7的tomcat
    通过8080访问

    注1:重启虚拟机后,发现有时候linux中的tomcat启动失败,应该将tomcat服务在mysql服务启动后启动。重要!!!
    注2:可将WEB项目部署到不同的tomcat中,可做集群测试

    在这里插入图片描述

nginx的安装及环境配置

CentOS7中使用yum安装Nginx的方法

  • 添加 nginx 官方提供的 yum 源(需要联网且时间较长)
    rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm
    在这里插入图片描述

  • 使用 yum 安装 nginx
    yum install nginx

    注1:yum方式安装nginx,它的安装根目录为/etc/nginx
    注2:查看nginx版本
    rpm -qa | grep nginx

    在这里插入图片描述

  • 启动及设置开机启动
    systemctl start nginx.service
    systemctl enable nginx.service
    在这里插入图片描述

  • 设置防火墙开放 80 端口
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload && firewall-cmd --list-port
    在这里插入图片描述

  • 测试 nginx 是否可被访问,应该显示nginx的欢迎界面
    http://192.168.148.128:80(自己虚拟机的IP地址)
    在这里插入图片描述

项目部署

SPA项目部署/Tomcat集群/Tomcat动态代理

  • 将SPA项目压缩并上传到/usr/share/nginx/html目录,再解压,再删除zip包
    cd /usr/share/nginx/html
    rz
    unzip crm.zip
    rm crm.zip

  • 修改/etc/nginx/conf.d/default.conf文件

    1. 进入/etc/nginx/conf.d目录,并对default.conf进行备份
      cd /etc/nginx/conf.d && cp default.conf default.conf.bak
    2. 编辑default.conf文件,详情见:资料/default-template.conf
      vim default.conf

注1:为什么编辑default.conf而不直接编辑/etc/nginx/nginx.conf文件了呢?
因为在这个版本的nginx.conf文件的最后一行,通过include命令已经包含了default.conf,
所以还是相当于修改了nginx.conf文件
include /etc/nginx/conf.d/*.conf;

  • 在进行Nginx+Tomcat负载均衡的时候有可能遇到一个权限问题,在error.log日志中,我们可以看到如下错误:
    connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream,

    解决方案如下:

    1. 检查网络访问的配置
      getsebool -a | grep httpd_can_network_connect
    2. 如结果如下
      httpd_can_network_connect --> off
    3. 执行:
      setsebool -P httpd_can_network_connect 1
      reboot
  • 重新修改window中的hosts文件,指向nginx所在虚拟机的IP
    注1:通过虚拟域名访问,还要修改window的hosts文件添加虚拟域名映射,文件位置如下:
    C:\Windows\System32\drivers\etc\hosts
    另外,此文件有可能出现由于当前用户权限不够,出现无法修改的情况?解决方案将此文件复制到d硬盘任一目录,修改后,再复制替换 C:\Windows\System32\drivers\etc\hosts原文件

  • 重启nginx,即可完成部署
    systemctl restart nginx
    systemctl status nginx

  • 其它
    注1:查看nginx的访问日志和错误日志
    /var/log/nginx/access.log
    /var/log/nginx/error.log

    注2:查看nginx版本
    rpm -qa | grep nginx

附录

附录一:在进行Nginx+Tomcat 负载均衡的时候遇到了这个权限问题,在error.log日志中,我们可以看到如下

connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream,
经过一番检查以及google,应该是SeLinux的导致的,解决方案有2个:

  • 首先查看SELinux状态:
    /usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态

    1. 下面是控制台输出的一部分内容
      SELinux status: enabled
  • 关闭SELinux:

    1. 临时关闭(不用重启机器):
      setenforce 0 ##设置SELinux 成为permissive模式

    ##setenforce 1 设置SELinux 成为enforcing模式

    1. 修改配置文件需要重启机器:
      修改/etc/selinux/config 文件
      将SELINUX=enforcing改为SELINUX=disabled
      重启机器即可

附录二:centos7中虚拟域名设置

vim /etc/hosts

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值