Linux集群

前言:

环境准备:虚拟机,xshell,mysql,tomcat,jdk,centos

虚拟机安装centos可以参考博客:虚拟机安装centos

一,安装jdk

打开xshell

 点击cftp,如果没有安装,就先安装cftp;

会弹出一个界面,输入用户名和密码,用户名默认为root,密码就是我们刚刚安装虚拟机的时候设置的密码;

将jdk的安装包导入linux;

将tomcat导入Linux中:

将mysql压缩包导入Linux中

将jdk,tomcat,mysql进行解压,路径就是去看xftp双击之后,复制的话就避免出错

类似于这样;

tar  -zxvf   压缩文件名.tar.gz

注意:注:
tar包属于打包文件,Unix和类Unix系统上的压缩打包工具,可以将多个文件打包为一个文件,文件后缀为tar
tar.gz包是压缩文件,经过gzip压缩后的tar文件,形成tar.gz包,扩展名为tar.gz
两种文件的用途不同,tar.gz一般情况下是源代码安装包,需要先解压再经过编译、安装才能执行。tar包最初设计目的是将文件备份到磁带上(tape archive),因此得名,一般用于文件备份。

参数说明:
z:指明压缩文件为gzip压缩
x:表示执行解压,如果使用c参数则表示压缩
v:显示详细的处理过程
f:要操作的文件名
-C:解压到指定目录,如:tar -zxf abc.tar.gz -C /root 将abc.tar.gz解压到root目录去。

自己安装的jdk适合安装在哪里?
自己安装的软件一般会放在/usr/local下,该目录与windows中的C:\Program Files类似。
其他常用目录结构:
/usr:系统级目录,类似于c:/windows
/usr/lib: 系统级目录,类型与c:/windows/system32
/opt: 用户级目录,可以近似的理解为d:/software,opt为可选的意思,一般用来安装第三方软件,或者是一些服务程序的安装

解压

解压jdk,回车

解压tomcat,回车

解压mysql

安装jdk

在/usr/local下创建java目录:

mkdir /usr/local/java

将jdk解压到/usr/local/java目录:

tar -zxf  jdk-8u151-linux-x64.tar.gz -C /usr/local/java

4)配置环境变量
运行:

vi /etc/profile

在配置文件中加入java环境变量:

export JAVA_HOME=JDK解压路径
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

保存,让新设置的环境变量生效:

source /etc/profile

检查java安装是否成功

java -version

 

安装tomcat

1)将tomcat解压到/opt下

tar -zxf apache-tomcat-8.5.20.tar.gz -C /opt

2)配置环境变量

vi /etc/profile

加入TOMCAT_HOME环境变量:
export TOMCAT_HOME=Tomcat解压路径

3)启动tomcat
来到安装的tomcat的bin目录,执行如下命令:

./startup.sh

tomcat启动后并不能立即访问,原因是8080端口被防火墙阻止了,可以关闭防火墙(不建议),或将8080端口配置到防火墙中。

#将8080端口加入到防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent

#reload防火墙规则
firewall-cmd --reload

修改防火墙之后,访问http://192.168.62.131:8080/,如果看到tomcat的管理页面,则说明成功。

 

4)创建启动脚本
将tomcat目录下bin中的catalina.sh拷贝到/etc/init.d下,重命名为tomcat,为所有用户增加可执行权限。

#将catalina.sh拷贝到init.d目录下
cp /opt/apache-tomcat-8.5.20/bin/catalina.sh /etc/init.d

#在init.d目录下为catalina.sh重命名
mv catalina.sh tomcat

#为所有用户赋可执行权限
chmod a+x tomcat

#编辑tomcat
vi /etc/init.d/tomcat

#进入编辑界面,加入如下内容,注意根据自己的环境配置
#!/bin/sh                                                              
JAVA_HOME=/usr/local/java/jdk1.8.0_151                          
CATALINA_HOME=/opt/apache-tomcat-8.5.20

#测试启动脚本
service tomcat status  #查看服务状态,q键退出
service tomcat start    #启动服务
service tomcat restart  #重启服务
service tomcat stop     #停止服务

service --status-all   #查看服务列表  q键退出

注意:

5) 配置tomcat随服务器自动启动

#编辑/etc/init.d/tomcat
vi /etc/init.d/tomcat

#加入如下注释,注意是注释,#
#chkconfig: 23456 10 90
#description: tomcat service

如图:

chkconfig: 2345 10 90
其中2345 表示这4个运行级别会开机自启, 10是启动优先级,90是关闭优先级

使用chkconfig --add命令添加服务:

chkconfig -add tomcat

完成后即可开机自启。

重启之后还能看到tomcat这个页面,说明成功;

mysql的安装

1) 查看系统中是否存在mariadb,如果存在则安装mysql时会有冲突,需要先卸载mariadb

# 查看是系统中是否存在mariadb
rpm -qa|grep mariadb

# 卸载mariadb
rpm -e --nodeps mariadb

注意:查看是否存在mariadb的时候,复制最后那一串,在进行卸载

2)创建mysql用户及用户组

#创建用户组
groupadd mysql

#创建用户
useradd mysql -g mysql

3) 将离线安装包传入liunx,并解压,注意版本号是否一致

tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar

4) 安装

rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm

//安装之前,请先检查是否安装libaio,如果未安装请先安装之后再装server源
rpm -qa|grep libaio

rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm

安装过程是这样:

5) 初始化,启动

# 初始化数据库
mysqld --initialize

#启动数据库服务
systemctl start mysqld

如果启动失败,可能是因为/var/lib/mysql没有权限导致的。可以通过查看/var/lib下的mysql目录的所属用户及用户组予以确认。如果mysql目录的所属用户及用户组不是mysql,处理方法如下:

# 更改mysql数据库目录的所属用户及用户组
chown mysql:mysql /var/lib/mysql -R

# mysql目录授权
cd /var/lib
chmod -R 777 mysql

6) 启动成功后修改mysql的登录密码
查看安装时生成的随机密码:

grep 'password' /var/log/mysqld.log

运行结果如下:


使用随机密码登录

mysql -u root -p
#注入随机密码

重置密码:

set password = password('密码')

7) 授权外网登录权限

grant all privileges on *.*  to  root@'%' identified by '密码';

all privileges: 表示所有权限
. 表示所有数据库的所有表。

8)刷新权限

flush privileges;

9)在防火墙规则中加入3306端口

#配置防火墙规则
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

#关闭防火墙,不建议使用
systemctl stop firewalld.service
systemctl disable firewalld.service

我们链接成功了,mysql也就安装完成;

在线安装

1)下载并安装MySQL官方的 Yum Repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2) yum安装

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

3) 开始安装MySQL服务器

[root@localhost ~]# yum -y install mysql-community-server

4) 启动数据库

[root@localhost ~]# systemctl start  mysqld.service

5)查看数据库状态

[root@localhost ~]# systemctl status mysqld.service

6)登录数据库

首先获取安装mysql时的初始密码:

[root@localhost ~]# grep "password" /var/log/mysqld.log
2020-09-15T17:01:57.020172Z 1 [Note] A temporary password is generated for root@localhost: dsTSIKb2yo:9

dsTSIKb2yo:9即为初始密码,

使用初始密码登录,然后修改为自己的密码, mysql默认对密码是有要求的,不能简单的设置为1234等,自己的测试库不用太复杂,可以关闭密码检查

mysql -u root -p
......
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

7)赋值权限

mysql> grant all privileges on *.*  to  root@'%' identified by '123456';
mysql> flush privileges;
mysql> exit

8) 防火墙等相关设置,请大家参照8.1部分的描述。

9)自动启动

#服务状态
systemctl status mysqld.service

#开机启动
systemctl enable mysqld.service

这一步操作完成之后安装nginx

安装nginx

有两种方式,一种是先下载Nginx,在离线安装; 第二种是yum方式安装。 这里采用离线安装方式, 如果希望使用yum方式安装,可以参考Nginx官方文档。

离线安装步骤:

1) gcc安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装

yum install gcc-c++

2)PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。

yum install -y pcre pcre-devel

3) zlib 安装

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

yum install -y zlib zlib-devel

4)OpenSSL 安装

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

yum install -y openssl openssl-devel

5) wget下载Nginx

 wget -c https://nginx.org/download/nginx-1.18.0.tar.gz

6)解压

tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

7)配置安装

# 使用默认配置,命令在nginx目录中执行,执行完成会产生MakeFile等文件
./configure

#编译并安装
make
make install

8)启动与停止


#到命令所在目录
cd /usr/local/nginx/sbin/

#启动
./nginx

#停止,强制直接关停
./nginx -s stop

#等待nginx进程处理完任务再停止
./nginx -s quit

#重新加载配置文件
./nginx -s reload

9)配置Nginx自动启动

vim /etc/rc.d/rc.local

修改/etc/rc.d/rc.local的权限:

chmod 755 rc.local

部署:

在部署前请先将后台服务的数据库连接修改为已安装配置好的mysq服务器的ip地址

后台服务的部署,非常简单,之间将war包上传至tomcat的webapps目录下即可。

)修改前端程序

注:在部署前端程序时,需要先修改后台server的ip地址配置。

2)将前台程序打包

npm run build

3) 将打包好的前端程序上传到Nginx服务器

4) nginx.conf配置

vim  /usr/local/nginx/conf/nginx.conf

重新加载配置文件

[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx -s reload

配置完成,启动mysql,tomcat1,tomcat2,nginx等服务进行测试

成功之后访问网址也就是虚拟机的IP地址;如果部署成功,则可以显示以下界面

配置不成功,检查配置文件的ip是否与主机虚拟机的IP是否一致;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/473951.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS(鸿蒙)应用开发——(一)

目录 1 创建hellopro项目 2 了解ArkTS 3 了解ArkTS的组件 4 组件介绍 4.1 常用基础组件: 4.1.1 Text 4.1.2 Button 4.1.3 TextInput 4.2 容器组件 4.2.1 Column 4.2.2 Row 5 案例——实现一个简易登录页面 5.1 在实现预览效果之前,我们…

记录开发STM32遇到的卡死问题-串口

背景:以STM32作为主控,广州大彩显示屏显示,主控实时采集数据,串口波特率115200.设置收发频率为50Hz,即单片机每秒发送50帧数据,每秒接收50帧数据,每帧数据大概14字节。 问题:系统长…

Cronos zkEVM 基于 Covalent Network(CQT)数据可用性 API,推动其 Layer2 DeFi 生态更好地发展

在一项旨在显著改善 DeFi 生态的战略举措中,Cronos 与 Covalent Network(CQT)携手合作,以期待 Cronos zkEVM 的推出。这一整合,预计将进一步降低以太坊生态系统的交易成本、提升交易速度,并带来更好的交易体…

ZnO非线性电阻片功率损耗的频率特性

对不同频率正弦交流电压作用下直流氧化锌阀片的功率损耗进行了测量。图3.16(a)和(b)分别为试品类型A和试品类型B两种直流ZnO阀片在不同频率电压作用下的功率损耗随荷电率变化的特性。两种阀片的功率损耗都随频率和荷电率的增加而增加。当频率达到1kHz或以上时,阀片的功率损耗增…

SQLiteC/C++接口详细介绍sqlite3_stmt类(二)

返回目录:SQLite—免费开源数据库系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类简介 下一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(三) sqlite3_reset() 功能:重置一个准备好执行的SQL语…

IDEA之This license XXXX has been suspended

IDEA激活码突然报如下错误: This license XXXXX has been suspended. Please contact your license administrator 解决方案: IDEA版本2022.2.3,亲测管用

【机器学习智能硬件开发全解】(十一)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的链接过程】

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 机器学习智能硬件开发全解 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 前言 我们回顾一下上篇文章: 【机器学习…

软件企业在咨询第三方软件测试机构报价时,应提前准备什么资料?

近年来,随着软件行业的迅速发展,软件企业对于软件质量的重视程度日益增加。为了确保软件产品的质量以及用户的满意度,越来越多的企业倾向于委托第三方软件测试机构进行测试工作。在咨询第三方软件测试机构报价之前,软件企业需要提…

SQLiteC/C++接口详细介绍sqlite3_stmt类(四)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(三) 下一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(五) 7. sqlite3_bind_parameter_count函数 sqlite3_bind_param…

风速预测(八)VMD-CNN-Transformer预测模型

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测(一)数据集介绍和预处理-CSDN博客 风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

【实例】React 组件传值方法: Props、回调函数、Context、路由传参

React原始传值方法 借用状态管理库的传值见下篇文:MobX 和 Redux 【实例】React 状态管理库 MobX Redux 入门及对比 文章目录 React原始传值方法父组件->子组件 props子组件->父组件 回调函数Context路由传值 父组件->子组件 props 父组件可以通过属性&a…

sheng的学习笔记-AI-Inception network

目录:sheng的学习笔记-AI目录-CSDN博客 基础知识 构建卷积层时,你要决定过滤器的大小究竟是11(原来是13,猜测为口误),33还是55,或者要不要添加池化层。而Inception网络的作用就是代替你来决定&…

流畅的 Python 第二版(GPT 重译)(一)

前言 计划是这样的:当有人使用你不理解的特性时,直接开枪打死他们。这比学习新东西要容易得多,不久之后,活下来的程序员只会用一个容易理解的、微小的 Python 0.9.6 子集来编写代码 。 Tim Peters,传奇的核心开发者&am…

【数据结构】——线性表(顺序表加链表),万字解读(加链表oj详解)

前言 由于之前存在过对两者的区别考虑,所以把他们放在一起来说,更加容易区别和理解 对于有关线性表的概念这里就不展示了,这里主要是介绍线性表里面的这两个结构的知识点 一.顺序表 1.顺序表介绍 顺序表的存储结构和逻辑结构都是相邻的&a…

前端知识点03(JS)

文章目录 前端知识点03(JS)1、JS中this指向问题2、script中的async和defer的区别3、setTimeOut和setInterval4、Es6和ES5的区别5、ES6的新特性 🎉写在最后 前端知识点03(JS) hello hello~ ,这里是 code袁~&…

SpringCloud-Feign远程调用

使用Feign替代RestTemplate进行远程服务调用&#xff1a; 远程调用配置 1. 引入依赖 我们在order-service服务的pom文件中引入feign的依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starte…

spring MVC是如何找到html文件并返回的?

Spring MVC 搜索路径 启动一个SpringBoot项目时&#xff0c;访问http://localhost:8080&#xff0c;对于SpringMVC&#xff0c;它会默认把这段url看成http://localhost:8080/index.html&#xff0c;所以这两个url是等价的。 .html, .css, .js, .img …都是静态资源文件&#x…

玩转C语言——C语言中内存存储

一、 整数在内存中的存储 我们知道&#xff1a;整数的2进制表⽰⽅法有三种&#xff0c;即 原码、反码和补码 三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤1表⽰“负”&#xff0c;⽽数值位最 ⾼位的⼀位是被当做符号位&#xff0c;…

(学习日记)2024.03.14:UCOSIII第十六节:时间片

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

编曲学习:如何编写钢琴织体 Cubase12逻辑预置 需要弄明白的问题

钢琴织体是指演奏形式、方式,同一个和弦进行可以用很多种不同的演奏方法。常用织体有分解和弦,柱式和弦,琶音织体,混合织体。 在编写钢琴织体前,先定好歌曲的调。 Cubase小技巧:把钢琴轨道向上拖动打和弦轨道,就可以显示和弦!如果你有一些参考工程,不知道用了哪些和…