电商日志分析项目 – 01 环境搭建和项目部署

一、CentOS7下MySQL-5.7使用yum方式安装:


Centos7的MySQL安装

卸载mariaDb

mysql被oracle收购后为了防止mysql有可能变成闭源,因此mysql创始人maria就开源做了一个mariaDb, centos7是自带使用了这个数据库的.因此安装mysql之前,应当首先卸载mariadb数据库:

同理如果是已经安装过其他版本的MySQL,安装新的版本之前也需要按照如上方法进行卸载。

安装MySQL

下载mysql的YUM源: https://dev.mysql.com/downloads/repo/yum/

YUM源的官方安装说明:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

下载源mysql的YUM源,官网提供的是最新的MySQL8.0的源,内含其他较低版本的源

由于我们是下载到/home/hadoop/softwares目录下,所以先切换到该目录下:

安装mysql的YUM源:

检查mysql的YUM源是否安装成功:

选择要启用的mysql版本

查看源里包含的mysql版本,执行:

可以通过类似下面的语句来启动和禁用某些版本,比如这里是禁用默认启用的MySQL8.0的源,转而启用我们需要安装的MySQL5.7的源。

或者通过修改/etc/yum.repos.d/mysql-community.repo文件,改变默认安装的mysql版本。比如要安装5.7版本,将8.0源的enabled=1改成enabled=0,然后再将5.7源的enabled=0改成enabled=1即可。

要使用yum-config-manager命令, 需要先安装yum-utils: sudo yum install yum-utils

注意: 同一时间只允许enable一个MySQL版本。

如果只需要安装MySQL5.7的版本,也可以不看上面,直接本地安装指定的远程MySQL5.7源

查看当前的启用的 MySQL 版本:

安装MySQL

启动MySQL服务

配置开机启动

查看运行状态

查看到进程信息

查看端口,可以看出mysql server的进程mysqld所使用的默认端口即3306

找到临时密码

但是要登陆mysql,我们需要root密码,这个密码是安装时随机生成在MySQL的服务器日志中的

登录MySQL

问题: 日志里没有找到临时密码, 或者密码不能登录,可能的原因就是之前安装过MySQL

解决办法:

再重启服务后就可以在日志文件中找到重新生成的临时密码了

也可以直接使用明文密码登陆,像这样

初始密码我们可以这样操作,因为很快我们会将将其改为其他的密码。

但是正常使用时不建议这样 不安全

黑客可以使用history命令查看到你在命令行的输入获取到你的MySQL的root密码

另外MySQL报错在/var下面的log目录下可以查看


如果是虚拟机环境为了方便可以选择配置跳过密码验证

添加以下代码

第一次登陆后系统会很快提示你修改掉默认密码

尝试修改密码(虚拟机可以设置简单密码,如果是购买的服务器则需设置复杂密码并修改默认端口号)

密码安全策略

但是基于密码策略,所设置的密码必须要包含大小写字母、数字和字符。

修改策略并设置简单密码

将策略要求置为0(LOW),长度要求置为1

关于密码安全策略:

通过show命令查看当前的策略

1) validate_password_policy:密码安全策略,默认MEDIUM策略

策略 检查规则
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

2)validate_password_dictionary_file:密码策略文件,策略为STRONG才需要

3)validate_password_length:密码最少长度

4)validate_password_mixed_case_count:大小写字符长度,至少1个

5)validate_password_number_count :数字至少1个

6)validate_password_special_char_count:特殊字符至少1个

这样以后就可以使用新密码登陆了

开启远程登陆

mysql命令的-h选项可以设置需要远程登陆mysql的服务器的ip地址

如果是本地的话可以使用127.0.0.1或者直接省略

但是远程访问因为安全原因默认是关闭的

这里可以看到host都是localhost,这就是因为这些账号只有本地访问的权限

我们需要将root的访问权限扩大都允许任意方式访问(包括远程访问)

也可以创建一个专门用来支持远程访问的单独用户

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

若你想限制能连接到mysql服务器的客户端所在的IP地址为’192.168.1.6′

并使用mypassword作为密码,则命令如下:

使修改生效

现在虽然修改了远程访问权限,但是还没有生效

我们需要刷新权限(或者重启服务),当然直接在mysql执行环境刷新权限是更好的方法

然后我们可以试试使用navicat远程连接虚拟机中mysql试试

navicat虽然是收费的还是可以下载到破解的版本

最后一点

如果你的服务器开启了防火墙也可能导致远程无法连接

因为mysql默认使用3306端口,我们需要开放这个端口给mysql客户端连接

修改编码

默认安装的设置对中文的支持不好,一般需要修改成utf8,但这里我们修改成utf8mb4编码,因为它是uft8的超集,减少更多乱码的问题,也是推荐使用的编码,比如需要插入emoji字符在数据库中,utf8的显示就会出现问题,而utf8mb4则没有问题。

首先查看当前的编码:

为了修改编码,我们需要修改mysql的核心配置文件如下:

  • 30行以下为手动添加的配置

验证

  • character_set_client 是指客户端发送过来的语句的编码
  • character_set_database 是指服务器内部使用的编码
  • character_set_connection 是指mysqld收到客户端的语句后,要转换到的编码
  • character_set_results 是指server执行语句后,返回给客户端的数据的编码
  • character_set_system是元数据编码,无需修改
  • character_set_filesystem是文件系统的编码,2进制存储最有效,不能修改

rpm-bundle的离线安装

下载rpm-bundle包

依次手动安装

CentOS7下MySQL-5.7使用yum方式卸载

1、停止MySQL
命令:systemctl stop mysqld
2、查看已安装的mysql
命令:rpm -qa | grep -i mysql
3、卸载mysql,依次卸载第2步骤所列出的有关MySQL的安装包,如
命令:yum remove -y mysql-community-server-5.6.36-2.el7.x86_64
4、删除mysql相关目录
1)使用命令查看mysql相关的文件目录:find / -name mysql
2)依次删除所查到的目录,命令:rm -rf /xxx/xxx/mysql

二、CentOS7下Nginx的安装:


Nginx安装

安装前确认是否已经安装过

Nginx文档http://nginx.org/en/docs/

Installation on Linux, nginx packages from nginx.org can be used.

Installation instructions
RHEL/CentOS
Debian
Ubuntu
SLES
Alpine

以 CentOS为例进行安装

Install the prerequisites:

To set up the yum repository, create the file named /etc/yum.repos.d/nginx.repo with the following contents:

内容如下:

By default, the repository for stable nginx packages is used. If you would like to use mainline nginx packages, run the following command:

To install nginx, run the following command:

When prompted to accept the GPG key, verify that the fingerprint matches 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62, and if so, accept it.

常用命令

解释 命令
安装服务 yum install nginx
启动服务 service nginx start
停止服务 service nginx stop
重载服务 service nginx reload

配置完成后启动服务

如果服务器已经启动,当配置发生变化可以直接使用重载服务来更新配置,运维常用,因为不需要停止服务就可以重载新的配置。

三、部署前端网站到nginx下


电商网站的静态文件都放在shop文件夹中,将此文件夹上传到虚拟机的/opt/data/目录下,

对nginx默认配置文件进行改名

修改如下

重新加载nginx配置,执行:

在浏览器中验证下是否可以访问到网站,输入:

效果如下:
file

四、Tomcat的安装


准备:安装Java JDK1.8

这里安装openjdk是因为比较简单, 工作场合一定要使用oracle提供的jdk1.8

这样安装的好处就是环境变量都配好了

可以直接查看版本 java -version

Tomcat安装

下载页面: https://tomcat.apache.org/download-90.cgi

文档:https://tomcat.apache.org/tomcat-9.0-doc/index.html

下载链接

解压到后改名tomcat9

由于tomcat的端口8080和大数据环境中的jetty端口冲突,这里修改tomcat的端口位18080

启动 进入 /bin目录下 运行startup.sh脚本文件

检查tomcat进程信息

检查对应的监听端口信息

修改conf/tomcat-users.xml添加tomcat用户

为了能够正常访问tomcat管理界面, 修改webapps/manager/META-INF目录下的context.xml,在allow行的末尾加上\d+.\d+.\d+.\d+表示允许所有主机访问。

重启tomcat9生效

或者在命令行里面输入:netstat -anop|grep 18080
file

五、电商后台系统部署到Tomcat服务器上


在MySQL创建数据库shop,将项目所需的sql数据导入,如:

将代码导入到eclipse或者idea中

将代码数据库连接相关配置hibernate.properties做如下修改:

  • 修改数据库名及地址为服务器的数据库名及地址
  • 修改数据库用户明、密码为服务器的用户密码

file

选择export->war

上传war包至Linux服务器

修改war包名位university.war

将war包移动到Tomcat安装目录下的webapp目录下

启动或重启Tomcat

打开浏览器进行验证:
file

配置nginx反向代理

18080端口的访问方式不太方便,另外也需要解决nginx下部署的静态页面调用后台服务的跨域问题,这里需要设置nginx方向代理,修改nginx配置文件如下:

重新加载nginx配置

现在可以通过http://hadoop100/university/访问后台界面
file

如果访问失败可以查看错误日志

如果发现502错误:

此时需要考虑把linux操作系统默认的强制访问安全限制设置为禁用。

关闭SElinux即可

  1. 临时关闭 SElinux

  2. 永久关闭 SElinux

修改之后就可以正常访问了

通过http://hadoop100/shop访问前端界面,可以看见数据可以正常加载了.

file

至此商城项目的前后端就配置完了, 商城的nginx服务器日志保存在/var/log/nginx/access.log ,接下来我们将使用httpd提供的ab压测工具来快速生成大量访问日志.

Views: 137