在阿里云上部署Springboot项目

news2024/11/16 11:31:38

文章目录

      • 环境准备
        • 1.安装jdk
        • 2.安装mysql
        • 3.开启端口
      • 上传项目
        • 1.数据库上传
        • 2.项目上传

环境准备

1.安装jdk

  • 查看系统中原来是否含有java环境
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj

其中,gcj是一个轻巧的,性能优越的Java语言编译器。它能够将Java源文件编译为Java字节码文件或者直接将Java源文件编译为本地机器码,它也能够将Java字节码文件编译为本地机器码。

如果存在自带的相关环境,需要删除再执行后面的操作:

rpm -qa | grep java | xargs rpm -e --nodeps 

  • 查看可用的openjdk版本
yum search java | grep -i --color jdk

  • 安装openjdk1.8.0版本(可自选),中间出现停顿问is this [y/N],选y
 yum install java-1.8.0-openjdk*

  • 查看jdk安装,出现以下信息则安装成功
java -version

在这里插入图片描述


  • jdk变量配置,使用vim /etc/profile编辑,将以下配置复制到profile中,其中注意JAVA_HOME中的jdk版本要一致
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
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

输入:wq保存退出后,执行以下命令,让配置生效

source /etc/profile



2.安装mysql

  • 查看版本:有则需要卸载
rpm -qa|grep mariadb #MySQL 的一个分支,主要由开源社区维护。

rpm -qa|grep mysql

  • 卸载
rpm -e --nodeps 文件名

  • 下载,在/usr/local/目录下执行
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

  • 解压
# .tar.gz 后缀
tar -zxvf 文件名

# .tar.xz 后缀
tar -Jxvf 文件名
tar -Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

  • 重命名
# 重命名(也可通过Xftp修改)
mv 原文件夹名 mysql8

# 软链接
ln -s 文件夹名 mysql8
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8

  • 创建用户组
groupadd mysql
useradd -r -g mysql mysql
  • 修改配置

临时生效:export 命令(连接会话关闭后失效,通常用于测试环境)

export PATH=$PATH:/usr/local/mysql8/bin

创建目录

mkdir -p /data/mysql8_data

赋予权限

# 更改属主和数组
chown -R mysql:mysql /data/mysql8_data

# 更改模式
chmod -R 750 /data/mysql8_data

永久生效:修改配置文件。
vim /usr/local/etc/my.cnf

配置内容

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /usr/local/mysql8
# 数据存放目录
datadir    = /data/mysql8_data/mysql
log-bin    = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir      =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file  =/data/mysql8_data/mysql/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及文件夹明,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout


初始化
  • --defaults-file:指定配置文件(要放在–initialize 前面)
  • --user: 指定用户
  • --basedir:指定安装目录
  • --datadir:指定初始化数据目录
  • --intialize-insecure:初始化无密码(否则生成随机密码)
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

  • 启动
# 完整命令
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
# 若添加了PATH变量,可省略如下
mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

确认启动
ps -ef|grep mysql

  • 登录

无密码:若以 --initialize-insecure 初始化,首次登录时跳过密码。

mysql -u root --skip-password

有密码:若初始化时设置了随机密码,在 /data/mysql8_data/mysql/mysql.log 查看

mysql -u root -p

  • 修改密码

进入mysql用户:

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

# 刷新权限
FLUSH PRIVILEGES;

Linux命令:

mysqladmin -u用户名 -p旧密码 password 新密码

  • 修改访问权限

查看用户

USE mysql;

SELECT user,host,plugin,authentication_string FROM user;

创建用户,设置远程访问权限

# 创建用户
CREATE user 'root'@'%';

# 设置首次密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

# 授权用户所有权限,刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;


3.开启端口

登录阿里云,找到工作台–云服务器ECS–安全组–配置规则

将需要用到的端口号配置进去

在这里插入图片描述



上传项目

1.数据库上传

使用navicat远程连接数据库(服务器ip+3306端口),将本地数据导出,导入到服务器的数据库上

在这里插入图片描述


2.项目上传

  • 在项目的pom.xml中添加
<packaging>jar</packaging>

在这里插入图片描述

在application.yml中将数据库连接改成服务器中的数据库设置,并注意此处的端口号需要在阿里云的安全组中配置。

在这里插入图片描述

启动项目,先在本地测试能不能打开项目,并访问服务器上的数据库,如果可以,则进行下一步,不然就检查一下数据库配置和防火墙配置。

  • 关闭项目,在maven–Lifecycle这里找到package,双击打包

在这里插入图片描述

在该项目路径的target中找到jar包

在这里插入图片描述

  • 使用xftp工具,将jar包上传到根目录

在这里插入图片描述

  • 使用java指令运行jar包
java -jar ***.jar ``//``***为你的jar包名
java -jar blog-0.0.1-SNAPSHOT.jar //普通运行,关掉xshell,或者ctrl+z/ctrl+c都会关闭项目
nohup -jar blog-0.0.1-SNAPSHOT.jar & //不中断运行,只有关闭服务项目才会停止

netstat -lnp|grep 端口号
kill 进程号 //关闭进程服务

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringSecurityOAuth2 中 Miss grant type问题

SpringSecurityOAuth2 登录传值的时候会出现 Miss grant type问题 没有设置content-type问题 Content-Type: application/x-www-form-urlencoded 解决

timingPath/set_data_check和set_max_delay/set_multicycle_path

目录 0.timing path 1.set_data_check 1.1set_data_clk约束cdc path 1.2 set_data_check和set_max_delay区别和使用场景 2.set_mulicycle_path 0.timing path timing path的概念&#xff1a; start和end不只是reg的CP和REG的D pin 还可以是mem的D/Qpin和 port port--&…

大模型AI时代哪类人相对更「安全」

最近随着人工智能技术的发展&#xff0c;越来越多的工作被AI智能自动化取代&#xff0c;这导致了许多人失去了TA们的工作。这些人被视为首批因人工智能失业的人。虽然这些人的失业是非常令人遗憾的&#xff0c;但是我们可以从中获得一些启示&#xff0c;以应对未来可能出现的类…

颠覆你的认知,不用开通Plus会员也可以使用ChatGPT的插件功能(兼容3.5)

在看到这篇文章之前&#xff0c;你可能以为只有GPT4.0才能使用插件。但事实上&#xff0c;早就有人基于3.5开发了一套完整的插件体系了&#xff0c;不但可以使用插件&#xff0c;还可以自己开发插件。插件使用的就是JavaScript语法&#xff0c;开发起来可以说是相当简单了。 注…

excel中函数vlookup使用方法

1、VLOOKUP函数是Excel中的一个纵向查找函数&#xff0c;它与 LOOKUP函数和 HLOOKUP函数属于一类函数&#xff0c;在工作中都有广泛应用。VLOOKUP是按列查找&#xff0c;最终返回该列所需查询列序所对应的值&#xff1b;与之对应的HLOOKUP是按行查找的。接下来以5位同学成绩表为…

路径规划算法:基于吉萨金字塔建造优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于吉萨金字塔建造优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于吉萨金字塔建造优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍…

pytorch—实现各种注意力

1.什么是Attention 所谓Attention机制&#xff0c;便是聚焦于局部信息的机制&#xff0c;比如图像中的某一个图像区域。随着任务的变化&#xff0c;注意力区域往往会发生变化。 面对上面这样的一张图&#xff0c;如果你只是从整体来看&#xff0c;只看到了很多人头&#xff0c…

JAVA ORM Bee 2.1.6 更简单,更易用;一行代码,即可完成一个表的 Sharding 分片配置

在一个工程里&#xff0c;同时使用 Mongodb 和 MySQL, 可以吗&#xff1f; 不但可以&#xff0c;还可以使用一套 Dao 的代码。 Java ORM Bee 不但支持 JDBC 类型的数据库&#xff0c;还支持 Mongodb, 也支持 Android, 鸿蒙. 最新功能介绍: V2.1.6 (2023・父亲节版) 1. 添加…

软件设计模式与体系结构-软件体系-调用-返回风格软件体系结构

目录 软件体系结构概述概述 一、调用-返回风格软件体系结构概念代码主程序-子程序软件体系结构自顶向下的设计方法的问题结构化设计的优缺点面向对象体系结构面向对象设计的优缺点主程序-子程序与面向对象体系结构相似差异 课程作业 软件体系结构概述 调用-返回风格软件体系结…

为什么现在原生家庭的问题这么严重?

匿名用户 191 人赞同了该回答 换一个玄学的角度来看这个问题&#xff0c;之前看b站&#xff0c;有一个up主说&#xff0c;中国有历史记载的人口数一直都很稳定&#xff0c;7-8千万到1亿左右&#xff0c;明朝2亿&#xff0c;清朝到民国算是增长比较多的&#xff0c;有4亿&#x…

内网隧道代理技术(十一)之公网资产扫描-代理池配置

公网资产扫描-代理池配置 代理池介绍 代理池的意思就是拥有多个代理可以随意切换IP的东西,每次用户的请求通过代理池,每个请求包的IP地址是不同的,那么代理池一般有几种用法呢? 购买代理池,购买的东西会自动切换IP,简单又方便(大力推荐)有些工具可以支持文本代理的方…

SpringMVC跨域写入Cookie

前后端分离的项目&#xff0c;SpringMVCTomcat(SpringBoot)&#xff0c;前端Vueaxios。 不建议后端去写入Cookie&#xff0c;一般都是在前端写入Cookie&#xff0c;如果后端使用&#xff1a;CrossOrigin(origins "http://localhost", allowCredentials "true…

unity物理系统

物理引擎即描述真实世界中物理现象的算法&#xff0c;如刚体物理&#xff0c;软体物理和流体物理&#xff0c;unity本身支持的主要为刚体物理&#xff0c;我们也可以自己编写一些其它的模拟效果。 unity内置Nvidia开发的Physx引擎&#xff08;3D&#xff09;和一个开源引擎Box…

【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)

当我们的Zabbix自动注册Ansible自动部署在一起时&#xff0c;会碰出什么样的火花&#xff0c;答案就是可以实现执行ansible的一条命令&#xff0c;监控任意一台或多台主机。 目录 一、配置好自动注册规则 二、编写Ansible playbook 三、运行Ansible&#xff0c;查看监控效果…

从零开始 Spring Boot 64:Hibernate 标识符

从零开始 Spring Boot 64&#xff1a;Hibernate 标识符 图源&#xff1a;简书 (jianshu.com) Hibernate 中的实体&#xff0c;由标识符&#xff08;Identitifier&#xff09;确定了其实体实例的唯一性&#xff0c;这对应于表中的主键。 Id 对于单一属性作为标识符的情况&…

Web3与AI:数字时代安全隐私交易的未来

AI&#xff0b;web3&#xff1d;下一个热门赛道&#xff1f; 在数字时代的浪潮中&#xff0c;Web3和人工智能&#xff08;AI&#xff09;成为了两个备受关注的前沿技术。Web3代表着下一代互联网&#xff0c;强调去中心化、透明和用户控制的特点。而人工智能作为一种智能化的技…

【LeetCode】503. 下一个更大元素 II

503. 下一个更大元素 II&#xff08;中等&#xff09; 方法&#xff1a;单调栈 「 对于找最近一个比当前值大/小」的问题&#xff0c;都可以使用单调栈来解决。栈可以很好的保存原始位置&#xff0c;最近影射栈顶。题目要求更大&#xff0c;因此更大即解–出栈&#xff0c;更小…

【leetcode】15.三数之和(python+转为两数之和+去重)

class Solution(object):def threeSum(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""# 思路&#xff1a;转为两数之和# for循环遍历先固定一个数字a&#xff0c;寻找另外两个数字之和-a&#xff08;双指针&#xff09;# 难点…

【高并发内存池】

&#x1f389;项目&#xff1a;高并发内存池 博主主页&#xff1a;桑榆非晚ᴷ 博主能力有限&#xff0c;如果有出错的地方希望大家不吝赐教 给自己打气&#xff1a;成功没有快车道&#xff0c;幸福没有高速路。所有的成功&#xff0c;都来自不倦地努力和奔跑&#xff0c;所有…

自动化测试工具——Fitnesse

1 介绍 是一个完全集成的独立wiki和验收测试框架。 1.1、协作工具 由于FitNesse是一个wiki web服务器&#xff0c;它的入门和学习曲线非常低&#xff0c;这使得它成为一个优秀的工具&#xff0c;可以与业务涉众进行协作。 1.2、测试工具 FitNesse中创建的wiki页面作为测试…