文章目录
一. 问题背景
买了台阿里云服务器,把以前的老ssm项目部署到服务器上。过程中踩了不少坑,现在做些重点笔记
二. 准备资源
服务器:centos7
jdk:1.8
mysql:8.0
tomcat:9.0
(有空打算再搞个nginx)
三. 安装JDK
3.1 下载
下载地址:下载官网jdk1.8 tar版本
3.2 安装
在centos的/usr路径下创建java文件夹,把jdk的tar包上传到/usr/java,如下:
使用如下命令对tar包解压并使用mv命令对它重命名成一个简单的名字,如下:
[root@gzl ~]# cd /usr/java
[root@gzl java]# pwd
/usr/java
[root@gzl java]# ls
jdk1.8.0_271 jdk-8u271-linux-x64.tar.gz
[root@gzl java]# tar -zxvf jdk-8u271-linux-x64.tar.gz
3.3 配置环境变量
配置环境变量,如下:
[root@gzl etc]# cd /etc
[root@gzl etc]# pwd
/etc
[root@gzl etc]# vim profile
在profile中添加如下内容即可,如下:
#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_271
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
保存退出,输入如下:
[root@gzl etc]# source profile
[root@gzl etc]# java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
[root@gzl etc]#
至此已完成安装JDK。
四. 安装MySQL
前言:因为后面打算搭建MySQL集群,因此我这里直接按照MySQL集群的配置来安装MySQL
4.1 下载
下载地址:下载官方MySQL8.0 tar包
4.2 解压缩
在centos的/usr/local路径下创建mysql文件夹,将tar包上传到/usr/local/mysql,如下:
使用如下命令解压并用mv命令重命名,如下:
[root@gzl mysql]# tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
[root@gzl mysql]# ls
mysql-8.0.22 mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
4.3 修改操作系统配置
修改centos系统配置,如不修改,后面初始化MySQL8的时候会报错,如下:
[root@gzl security]# vim /etc/security/limits.conf
在limits.conf文件内增加以下内容:
soft nofile 65535
hard nofile 65535
soft nproc 65535
hard nproc 65535
同理执行以下命令,如下:
root@localhost1 limits.d]# vim /etc/security/limits.d/20-nproc.conf
将原本的内容
* soft nproc 1024
root soft nproc unlimited
改成
* soft nproc unlimited
root soft nproc unlimited
4.4 卸载centos自带的数据库
Mariadb是MySQL的开源版,所以必须卸载,否则会存在冲突导致无法安装MySQL。
执行以下代码:
[root@gzl limits.d]# rpm -qa|grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
[root@gzl limits.d]# rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
4.5 安装
修改my.cnf文件,并将它放到/usr/local/mysql/mysql-8.0.22路径下,my.cnf文件内容如下:
(注意:内容中大多数是mysql集群相关的,我们不搭集群暂时不用修改它。我们只需修改basedir、datadir那些基础信息即可,当然若按照我前面搭建的路径就不用修改了)
[mysqld]
character-set-server=utf8
port=3306
socket=/tmp/mysql.sock
basedir=/usr/local/mysql/mysql-8.0.22
datadir=/usr/local/mysql/mysql-8.0.22/data
log-error=/usr/local/mysql/mysql-8.0.22/data/mysqld.log
pid-file=/usr/local/mysql/mysql-8.0.22/data/mysql.pid
user=root
tmpdir=/tmp
default-storage-engine=INNODB
lower-case-table-names=1
# 设置模式
sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#复制框架
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
#组复制设置
#server必须为每个事务收集写集合,并使用XXHASH64哈希算法将其编码为散列
transaction_write_set_extraction=XXHASH64
#告知插件加入或创建组命名,UUID
loose-group_replication_group_name="f703d586-8d16-11ea-aa98-005090e3c222"
#server启动时不自启组复制,为了避免每次启动自动引导具有相同名称的第二个组,所以设置为OFF。
loose-group_replication_start_on_boot=off
#告诉插件使用IP地址,端口33061用于接收组中其他成员转入连接
loose-group_replication_local_address="192.168.199.130:33061"
#启动组server,种子server,加入组应该连接这些的ip和端口;其他server要加入组得由组成员同意
loose-group_replication_group_seeds="192.168.199.130:33061,192.168.199.131:33061,192.168.199.132:33061"
loose-group_replication_ip_whitelist="192.168.199.130,192.168.199.131,192.168.199.132"
loose-group_replication_bootstrap_group=off
# 使用MGR的单主模式
loose-group_replication_single_primary_mode=on
loose-group_replication_enforce_update_everywhere_checks=off
disabled_storage_engines = MyISAM,BLACKHOLE,FEDERATED,CSV,ARCHIVE
执行MySQL的安装命令,进入到MySQL的bin目录下,执行以下代码:
[root@gzl security]# cd /usr/local/mysql/mysql-8.0.22
[root@gzl mysql-8.0.22]# pwd
/usr/local/mysql/mysql-8.0.22
[root@gzl mysql-8.0.22]# cd bin
[root@gzl bin]# ./mysqld --initialize-insecure --basedir=/usr/local/mysql/mysql-8.0.22 --datadir=/usr/local/mysql/mysql-8.0.22/data --lower-case-table-names=1
如出现以下信息,则表示安装成功,如下:
root@localhost is created with empty password!
使用MySQL的support-files/mysql.server
进行MySQL的启动、停止以及重启等。复制support-files/mysql.server文件到/usr/local/mysql/mysql-8.0.22下,然后编辑mysql.server,补充basedir与datadir对应的值,如下:
basedir=/usr/local/mysql/mysql-8.0.22
datadir=/usr/local/mysql/mysql-8.0.22/data
在 /usr/local/mysql/mysql-8.0.22
的data文件夹下面新建一个mysql.pid文件。
执行以下代码启动MySQL,如下:
[root@gzl mysql-8.0.22]$ /usr/local/mysql/mysql-8.0.22/mysql.server start
进入MySQL的命令行,设置root密码,增加admin用户,如下:
[root@gzl bin]$ cd /usr/local/mysql/mysql-8.0.22/bin
[root@gzl bin]$ pwd
/usr/local/mysql/mysql-8.0.22/bin
[root@gzl bin]$ ./mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 70
Server version: 8.0.22 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> alter user 'root'@'localhost' identified by '你的密码';
Query OK, 0 rows affected (0.02 sec)
mysql> create user 'admin'@'%' identified by '你的密码';
Query OK, 0 rows affected (0.02 sec)
mysql> grant all privileges on *.* to 'admin'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
至此已完成MySQL8.0的安装。
五. 安装Tomcat
5.1 下载
下载地址:下载官方的tomcat9.0 tar包
5.2 安装
在centos的/usr/local创建tomcat文件夹,并把tar包上传到/usr/local/tomcat,如下:
使用如下命令解压并用mv命令重命名,如下:
[root@gzl tomcat]# tar -zxvf apache-tomcat-9.0.40.tar.gz
使用如下命令启动tomcat,如下:
[root@gzl bin]# /usr/local/tomcat/apache-tomcat-9.0.40/bin/startup.sh
至此已完成安装Tomcat。
六. 部署SSM项目
将ssm项目达成war包,把war包上传到tomcat的webapps文件夹里。如下:
至此已完成部署
七. 开放端口号并配置入站规则
因为使用的是阿里云,而且我想把它开放给大家可以查看,所以我没有把centos的防火墙关了。因此需要把端口开放,外部网络才能访问到阿里云上面的项目。而且阿里云服务器还需要配置入站规则。
7.1 开放端口号
阿里云默认关闭了防火墙,使用如下命令打开防火墙:
[root@gzl webapps]# systemctl start firewalld
开放3306以及8080端口号:
[root@gzl webapps]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@gzl webapps]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
7.2 配置入站规则
登录dev.aliyun.com,点击“控制台”,登录账号,点击如下:
至此完成配置入站规则。
SSM项目已经部署好了,可以通过外网访问它了。