当前位置: 首页 > news >正文

【Ubuntu24.04】部署服务(基础)

目录

  • 0 背景
  • 1 设置静态IP
  • 2 连接服务器
  • 3 部署服务
    • 3.1 安装JDK
    • 3.2 下载并安装MySQL8.4
      • 3.2.1 从官网下载 APT Repository 配置文件
      • 3.2.2 安装 MySQL8.4
      • 3.2.3 配置远程连接
    • 3.3 下载并配置Redis
    • 3.4 上传jar包并部署应用
    • 3.5 开放端口
  • 4 总结

0 背景

    在成功安装了Ubuntu24.04操作系统后,自然想用它做些什么,正好手里有一个早先写的测试服务,所以想试试部署一下。
    服务是一个小小的单体SpringBoot项目,项目本身并不是重点,这里已经将其打成了jar包,已知其使用到的组件有RedisMySQL
    下面来部署一下。

1 设置静态IP

    既然是服务器,那么IP就不要变,尤其是个人笔记本这种连接WiFi的机器,使用DHCP分配IP的话,说不定哪天IP就变了。所以要想将笔记本当服务器使用,那么就得配置静态IP。
    桌面版的Ubuntu配置静态IP的方式很简单,只需要进入设置,然后选择网络,然后你连接的WiFi后面有一个齿轮,点击进去,可以看到现在的IP地址,切换到IPv4,选择手动,直接将刚才看到的IP地址填进去,并设置子网掩码和默认网关,网关一般都是最后一段写1即可。然后配置DNS解析地址为8.8.8.8即可。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
点击应用按钮即可,然后重启一下WiFi开关。
    现在应该就设置好静态IP了。接下来就是让远程的开发机可以通过ssh连接工具,比如Termius来连接。

2 连接服务器

    在开发机上安装Termius,然后在服务器上安装ssh服务,执行:

# 更新源
sudo apt update
# 安装ssh
sudo apt install openssh-server
# 开启防火墙
sudo ufw allow ssh
# 查看状态
sudo systemctl status ssh
# 如果是inactive也不要担心,重启服务即可
sudo systemctl restart ssh
# 开机自启动
sudo systemctl enable ssh

    这样一来就可以通过远程连接服务器了。这一步的作用是在开发机一个电脑上就可以完成从开发到部署的所有操作,而不需要去操作服务器。换句话说,如果操作服务器很方便的话,完全可以通过邮箱把需要部署的东西传到服务器然后在服务器上操作。
    但是自己的笔记本电脑一般会安装桌面版Ubuntu,所以远程连接不是必需的。

3 部署服务

    现在开始部署jar包,这里使用最原始最简单的方式部署。不过在部署之前需要安装必需的环境。

3.1 安装JDK

    老生常谈的JDK,只需要注意版本即可,SpringBoot3需要JDK17及以上,安装过程不细说,可以参考本文在最后给出的链接。

3.2 下载并安装MySQL8.4

    这个也是老生常谈的问题,在Ubuntu24.04上安装MySQL8非常简单,不需要传统的解压缩之类的操作,这个也会在文末给出链接。
    不过这里选择安装MySQL8.4,与之前的安装有所不同。

3.2.1 从官网下载 APT Repository 配置文件

官网地址
在这里插入图片描述
然后安装这个.deb文件,执行

# 跟上你下载的 .deb 文件名
sudo dpkg -i xxx.deb

在安装的时候会跳出图形化界面让你配置:
在这里插入图片描述
注意选择蓝色方框中的即可,第一个是mysql-8.4-lts,第二个是Enabled
第一个点进去长这样:
在这里插入图片描述
第二个点进去长这样:
在这里插入图片描述
选择好之后选择ok即可
在这里插入图片描述
然后这个.deb文件的安装就好了。

3.2.2 安装 MySQL8.4

    接下来就是使用apt安装MySQL了,这一步和安装MySQL8.0一样,区别就在于之前的那个.deb文件,执行:

sudo apt update
sudo apt install mysql-server

    在这个过程中会出现图形化界面让你配置密码,这样就不用安装好之后再去配置密码了。

3.2.3 配置远程连接

    首先进入MySQL,执行

mysql -uroot -p

    然后输入安装的时候设置的密码即可,进入之后执行:

use mysql;
# 查看一下用户以及密码策略,可以看到全是采用的 caching_sha2_password 而不是 mysql_native_password
select user,host,plugin from user;
# 设置远程权限
update user set host = '%' where user = 'root';
# 刷新,很重要
flush privileges;

    执行完上述操作后应该是这样的:
在这里插入图片描述
    至此MySQL的配置就完了,注意不需要去修改任何的配置文件,很方便。但是需要注意连接MySQL的图形化工具的驱动,我之前使用的SQLYog的一个很老的破解版(之所以不用社区版是因为它有广告)就因为驱动不够新而连不上。

3.3 下载并配置Redis

    Ubuntu24.04安装Redis同样非常方便,只需要执行:

sudo apt update
sudo apt upgrade -y
# 安装redis
sudo apt install redis-server -y
# 查看版本
redis-cli --version
# 查看状态,按q退出
sudo systemctl status redis

    至此Redis安装完成,还需要进一步地配置,执行:

sudo vim /etc/redis/redis.conf
# 找到 requirepass 那一行(用vim的/搜索即可),将其改为你的密码
# 找到 protected-mode 那一行,将 yes 改为 no
# 找到 bind 那一行,将其注释掉,表示任意IP均可访问,也可以设置指定IP访问
# 然后查看端口监听状态
netstat -tuln
# 如果看到 0.0.0.0:6379 就说明redis可以被任意远程IP访问

    至此Redis配置完成。

3.4 上传jar包并部署应用

    上传jar包可以用TermiusSFTP,这个传输可以直接传文件夹,非常方便,注意把数据库的SQL文件一起传过去。然后创建好数据库并做好必要的数据初始化,执行:

# 注意这是在 shell 终端执行的
mysql -uroot -p < your_sql_file.sql

    然后会让你输入密码,输入即可。此时数据库已经初始化好。接下来就是运行jar包了。执行

# 在后台运行jar包并将日志输出到demo.log中,这适合项目中没有配置日志的情况
nohup java -jar demo.jar > demo.log &
# 在后台运行但忽略任何输出,这要求在项目中已经配置好日志的输出
nohup java -jar demo.jar > /dev/null 2>&1 &
# 查看java进程
jps -l

    注意不要直接使用java -jar,因为这样会占据终端,并且将日志输出到终端,一旦Ctrl+C就会退出整个进程。

3.5 开放端口

    光有服务还不够,还需要能远程访问该服务,这就需要开放对应的端口。其实默认防火墙是inactive状态的,这表示所有端口都可以被访问。如果只是自己使用,关闭防火墙不见得是一个坏的选择,这样很简单,不用关心端口是否开放。不过用在其它地方的话就要考虑安全性问题了。

4 总结

    服务的部署很简单,繁琐的是布置好服务要用到的环境,以及维护服务,比如报错日志,服务的更新等。这里使用的是最原始的部署方式,主要是为了呈现部署原理以及操作步骤。
    最后是安装配置JDK以及MySQL8.0的方法:Ubuntu24.04开发环境配置

相关文章:

【Ubuntu24.04】部署服务(基础)

目录 0 背景1 设置静态IP2 连接服务器3 部署服务3.1 安装JDK3.2 下载并安装MySQL8.43.2.1 从官网下载 APT Repository 配置文件3.2.2 安装 MySQL8.43.2.3 配置远程连接 3.3 下载并配置Redis3.4 上传jar包并部署应用3.5 开放端口 4 总结 0 背景 在成功安装了Ubuntu24.04操作系统…...

Linux符号使用记录

~ 账户 home 目录&#xff0c;如果是 root 账户就是 /root . 当前目录 .. 上层目录 | 管道符 & 后台工作&#xff0c;放在完整指令列的最后端&#xff0c;表示将该指令列放入后台中工作。 > 输出重定向&#xff0c;重新…...

初阶C++之C++入门基础

大家好&#xff01;欢迎来到C篇学习&#xff0c;这篇文章的内容不会很难&#xff0c;为c的引入&#xff0c;c的重点内容将在第二篇的文章中讲解&#xff0c;届时难度会陡然上升&#xff0c;请做好准备&#xff01; 我们先看网络上的一个梗&#xff1a;21天内⾃学精通C 好了&am…...

ODOO学习笔记(7):模块化架构(按需安装)

一、Odoo模块化架构概述 Odoo是一个功能强大的企业资源规划&#xff08;ERP&#xff09;系统&#xff0c;其模块化架构是它的核心优势之一。这种架构允许系统通过添加、移除或修改不同的模块来灵活地适应企业的各种业务需求。 核心模块与自定义模块&#xff1a; Odoo本身带有一…...

Java的dto,和多表的调用

1理论 需求是新增菜品eg&#xff1a;菜名:豆腐脑&#xff1b;口味&#xff1a;甜口&#xff0c;咸口&#xff0c; 菜单表&#xff1a;dish&#xff1b;口味表dish_flavor&#xff1b; 1dto:数据传输对象 新建一个dishDto对象有两个表里的属性 2用到两个表&#xff0c;dish,d…...

时序数据库TimescaleDB安装部署以及常见使用

文章目录 一、时序数据库二、TimescaleDB部署1、repository yum仓库配置2、yum在线安装3、插件配置4、TimescaleDB使用登录pg创建插件使用超表 一、时序数据库 什么是时序数据库&#xff1f;顾名思义&#xff0c;用于处理按照时间变化顺序的数据的数据库即为时序数据库&#x…...

MG算法(英文版)题解

翻译&#xff1a; 考虑一个加法流&#xff0c;其中一个特定项目出现 n^(1/2) 次&#xff0c;并且有 n - n^(1/2) - 1 个其他不同的项目&#xff0c;每个项目出现一次。在应用 Misra-Gries&#xff08;MG&#xff09;算法时&#xff0c;应该选择哪个 ε&#xff08;epsilon&…...

2-UML概念模型测试

1. (单选题, 1.0 分) UML中的关系不包括&#xff08;&#xff09;。 A. 抽象B. 实现C. 依赖D. 关联 我的答案:A正确答案: A 知识点&#xff1a; UML的构成 1.0分 2. (单选题, 1.0 分) 下列事物不属于UML结构事物的是&#xff08;&#xff09;。 A. 组件B. 类C. 节点D. 状…...

人工智能(AI)对于电商行业的变革和意义

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/402a907e12694df5a34f8f266385f3d2.png#pic_center> &#x1f393;作者简介&#xff1a;全栈领域优质创作者 &#x1f310;个人主页&#xff1a;百锦再新空间代码工作室 &#x1f4de;工作室&#xff1a;新空间代…...

智能病历xml提取

select * from (SELECT m.病人Id, m.主页Id, x.title, x.content.getclobval() 参考, x.content content --EXTRACTVALUE(x.Content, //zlxml//document//subdoc[antetypeid"3C38A8DAB01C473A9074A8EDD0B8553"]//utext) 主治医师, --EXTRACTVALUE(x.…...

RK3568平台开发系列讲解(GPIO篇)GPIO的sysfs调试手段

🚀返回专栏总目录 文章目录 一、内核配置二、GPIO sysfs节点介绍三、命令行控制GPIO3.1、sd导出GPIO3.2、设置GPIO方向3.3、GPIO输入电平读取3.4、GPIO输出电平设置四、Linux 应用控制GPIO4.1、控制输出4.2、输入检测4.3、使用 GPIO 中断沉淀、分享、成长,让自己和他人都能有…...

使用 Web Search 插件扩展 GitHub Copilot 问答

GitHub Copilot 是一个由 GitHub 和 OpenAI 合作开发的人工智能代码提示工具。它可以根据上下文提示代码&#xff0c;还可以回答各种技术相关的问题。但是 Copilot 本身不能回答非技术类型的问题。为了扩展 Copilot 的功能&#xff0c;微软发布了一个名为 Web Search 的插件&am…...

workerman的安装与使用

webman是一款基于workerman开发的高性能HTTP服务框架。webman用于替代传统的php-fpm架构&#xff0c;提供超高性能可扩展的HTTP服务。你可以用webman开发网站&#xff0c;也可以开发HTTP接口或者微服务。 除此之外&#xff0c;webman还支持自定义进程&#xff0c;可以做worker…...

QtQuick.Controls 控件介绍(都有哪些type)

这里写目录标题 主要控件 官方示例1. quickcontrols示例示例1 控制controlsSliders滑块bottom与tab 示例2 系统对话框 systemdialogs示例3 仪表盘示例4 uiforms 表格-客户通讯录 2. quickcontrols2示例1 gallery 展示2 flat Style 扁平化 帮助文档 主要控件 Button&#xff1a…...

Unity导出APK加速与导出失败总结(不定时更新)

APK导出加速 1、修改配置文件&#xff1a; 需要修改的文件位置&#xff1a;编辑器安装路径/Editor/Data/PlaybackEngines/AndroidPlayer/Tools/GradleTemplates 1.1 settingsTemplate.gradle文件修改 直接附上最终效果&#xff1a; pluginManagement {repositories {**ART…...

域名绑定服务器小白教程

域名绑定与 Docker 容器部署指南 1. 获取云服务器公网 IP 登录云服务提供商控制台记录服务器公网 IP&#xff08;例&#xff1a;123.456.78.90&#xff09; 2. 配置域名 DNS 解析 登录域名注册商控制台添加 A 记录&#xff1a; 主机记录&#xff1a;类型&#xff1a;A值&am…...

用 Collections.synchronizedSet 创建线程安全的 HashSet

在 Java 中&#xff0c;HashSet 本身并不是线程安全的。如果在多线程环境下使用 HashSet&#xff0c;你需要采取额外的同步措施来保证线程安全。Collections 工具类提供了一种简便的方法来创建线程安全的集合——synchronizedSet 方法。这种方法通过在所有公共方法上添加同步块…...

【深度学习】模型参数冻结:原理、应用与实践

在深度学习领域&#xff0c;模型参数冻结是一种重要的技术手段&#xff0c;它在模型训练和优化过程中有着广泛的应用。本文将详细介绍模型参数冻结的相关概念、应用场景、在代码中的实现方式以及一些实际的案例分析。 一、模型参数冻结的概念 在深度学习模型的训练过程中&…...

数字后端教程之Innovus report_property和get_property使用方法及应用案例

数字IC后端实现Innovus中使用report_property可以报告出各种各样object的属性&#xff0c;主要有cell&#xff0c;net&#xff0c;PG Net&#xff0c;Pin&#xff0c;时钟clock&#xff0c;时序库lib属性&#xff0c;Design属性&#xff0c;timing path&#xff0c;timin arc等…...

JS中console对象内部提供调试方法

console.log() console.log() 是最常用的输出方法&#xff0c;用于将信息输出到浏览器控制台&#xff0c;通常用于普通的调试信息。 用途: 打印普通的消息、变量、对象等。 let user { name: "Alice", age: 25 }; console.log(user); // 输出对象 console.log(&…...

React上下文菜单常见问题解答:解决10个典型使用难题

React上下文菜单常见问题解答&#xff1a;解决10个典型使用难题 【免费下载链接】react-contextmenu Project is no longer maintained 项目地址: https://gitcode.com/gh_mirrors/re/react-contextmenu React-contextmenu 是一个强大的 React 上下文菜单组件库&#xf…...

国产工控机选型实战:从自主可控到边缘智能的工业应用解析

1. 项目概述&#xff1a;为什么我们需要关注国产工控机&#xff1f;如果你在工厂里负责过自动化产线&#xff0c;或者在能源、交通行业搞过设备监控&#xff0c;大概率遇到过这样的场景&#xff1a;产线上某台核心控制电脑突然蓝屏&#xff0c;或者某个数据采集模块因为电磁干扰…...

天勤 get_account 资金字段读懂:下单前可用与保证金检查

前言 策略信号对了却下不出去&#xff0c;我第一反应看 get_account()&#xff1a;是 available 不够&#xff0c;还是把 balance 当可用去和保证金比了。有次模拟盘「明明没下单」却报资金不足&#xff0c;查了半天是字段读错&#xff1b;还有一次夜盘加仓&#xff0c;白天算好…...

Kettle的优势

Kettle说具有非常强大的数据处理功能&#xff0c;没有做不到只有你想不到或者你还没有学会使用&#xff0c;如果确实做不到的情况下你还可以开发插件来进行数据处理&#xff0c;其中Kettle也提供了广泛的数据处理和转换功能&#xff0c;包括数据抽取、清洗、转换、合并、过滤等…...

UDS_自动化脚本生成_10服务_V01

1、原子元素 1.1 会话原子 Session.Default() Session.Extended() Session.Programming() Session.Developer() 1.2 请求原子 10 01 10 02 10 03 10 76 10 81 10 82 10 83 10 F6 10 04 10 84 10 / 10 01 00 / 10 02 00 / 10 03 00 / 10 76 00 1.3 响应原子 50 01 00 32 01 F4 …...

AI资讯简报如何成为工程师的技术决策雷达

1. 项目概述&#xff1a;一份真正“够用”的AI资讯简报&#xff0c;到底长什么样&#xff1f;“This AI newsletter is all you need #26”——光看标题&#xff0c;你可能以为这是某家科技媒体的常规栏目更新。但在我连续跟踪拆解了它前25期、并实际用它指导自己团队技术选型和…...

我踩了N多劣质工具坑从嫌弃到真香,2026这款语音生成软件真后悔没早用

上周刚下班被leader留下来整理2小时项目评审会纪要&#xff0c;对着录音逐句暂停记&#xff0c;熬到八点半还错漏了三个核心需求&#xff1b;上个月做行业专家访谈&#xff0c;3小时录音来回听&#xff0c;耳朵疼得发胀还漏了嘉宾的核心观点&#xff1b;报了线上的产品进阶课&a…...

ElevenLabs江苏话语音模型训练全链路拆解:从200小时带标注吴语语料清洗,到MOS得分达4.13的关键超参组合

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs江苏话语音模型训练全链路拆解&#xff1a;从200小时带标注吴语语料清洗&#xff0c;到MOS得分达4.13的关键超参组合 语料清洗与方言对齐策略 针对原始200小时江苏话&#xff08;含苏州、无…...

ElevenLabs支持广西话吗?2024最新实测结果曝光:仅2个API参数决定能否合成地道“梧州腔”

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs广西话语音支持的现状与背景 ElevenLabs 作为全球领先的AI语音合成平台&#xff0c;目前尚未在官方API文档、语言列表或控制台界面中提供对广西话&#xff08;含南宁白话、梧州话、玉林话等粤…...

深度解析沙伯基础创新塑料:年度十大高口碑产品权威榜单揭晓新选择

在制造业转型升级的关键节点&#xff0c;工程塑料作为工业生产的"粮食"&#xff0c;其品质稳定性与供应链效率直接关乎企业核心竞争力。然而当前市场存在明显的价值悖论&#xff1a;一方面下游企业对高性能材料需求持续攀升&#xff0c;另一方面却陷入"高价采购…...