跟着别人将springboot项目部署到服务器上

保姆级教程——将springboot项目部署到阿里云服务器(小白包会)_怎么把框架项目放到阿里云公网上-CSDN博客

 

可以先不买服务器然后试用一个月

 

专有网络好像也要搞

然后这个试用服务器里面防火墙要创建新的端口(比如自己项目运行的端口),不然浏览器显示不了

 

可以用这个把文件放进服务器(整个流程这个要用两次,一个是java环境包一个是项目打包的jar包)

java环境包后面还有个解压步骤

 

# 1. 下载新版官方源(替换原5.7源) wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

 

感觉要走整套流程的话先把服务器搞好环境包放进去解压,然后安装数据库环境,数据库搞好然后用户创建好,有表有数据然后创建springboot项目然后连接远程的服务器数据库然后直接打包好项目放数服务器.

现在先把项目搞好,数据库用本地的,现在要在远处服务器数据库重新创建新用户,然后把本地sql文件搞上去,然后在本地项目数据库配置改一下然后测试能否连接接口能不能用然后再把项目打包然后再把项目扔进远程服务器.

 

在服务器把数据库建好表搞好数据弄好之后去自己项目把配置改了,然后测试功能能不能用

服务器端口最好不要8080因为可能会跟其他端口冲突,然后去安全组加8800端口(虽然我第一次就用8080)

 

成功部署完浏览器能访问公网实现我的项目功能后

现在我是用xshell搞的所有命令,试试可视化界面的宝塔

 

宝塔面板需要安装在​​远程服务器上。

 

这是宝塔的提示:为了您的正常使用,请确保使用全新或纯净的系统安装宝塔面板,不支持已部署项目/环境的系统安装

所以我该继续安装吗

这个提示意味着:

  1. 宝塔建议在 ​​全新操作系统​​ 上安装
  2. ​​已部署项目​​ 的系统可能有兼容性问题
  3. ​​环境冲突​​ 风险较高

🔍 服务器现状

根据我们之前的操作,服务器上已有:

  • 已安装的Java环境(JDK)
  • 正在运行的Spring Boot应用
  • 端口监听配置
  • 防火墙设置

这些都属于​​已部署环境​​

安全安装(推荐)

    1. ​​创建系统快照​​
      在阿里云控制台对ECS实例创建完整快照(可回退的保障)

    2. ​​备份关键数据​​

      # 创建备份目录 mkdir /backup
      # 备份Java项目 cp /etc/student-0.0.1-SNAPSHOT.jar /backup/
      # 备份环境变量 cp /etc/environment /backup/
      # 备份重要配置文件 cp /etc/hosts /backup/
    3. ​​停止现有服务​​

      pkill -f student-0.0.1-SNAPSHOT.jar
    4. ​​安装宝塔​​

      wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
    5. ​​在宝塔中恢复项目​​

      • 通过宝塔文件管理上传备份的JAR文件
      • 使用宝塔的Java项目管理部署

 

宝塔安装全流程(在阿里云服务器上操作)

第一步:通过Xshell连接服务器

  1. 打开Xshell
  2. 连接(使用root用户)
  3. 输入密码登录

第二步:执行安装命令(在Xshell中)

# 切换到root用户(如果尚未切换) sudo -i
# 执行官方一键安装命令(适用于CentOS/Alibaba系统) wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

安装过程说明:

  1. 安装脚本自动运行(约需2-5分钟)

第三步:开放防火墙端口

在服务器上执行:

# 放行8888端口 sudo firewall-cmd --permanent --add-port=8888/tcp sudo firewall-cmd --reload

第四步:配置阿里云安全组

在阿里云控制台:

  1. 进入ECS实例安全组配置
  2. 添加入方向规则:
    • 协议:TCP
    • 端口:8888
    • 授权对象:0.0.0.0/0

第五步:登录宝塔面板

  1. 在浏览器访问
  2. 输入安装时生成的用户名和密码
  3. 首次登录同意服务条款

安装后首次设置建议

  1. ​​安全加固​​:

    • 修改默认8888端口
    • 修改面板用户名密码
    • 设置面板登录二次验证
  2. ​​环境准备​​:

    # 安装Java环境(在宝塔软件商店) 搜索→Java→安装JDK17
  3. ​​项目部署​​:

    文件管理→上传→选择student-0.0.1-SNAPSHOT.jar ↓ 网站→Java项目→添加项目 ↓ 设置: - 项目路径: /www/wwwroot/student-app - JAR名称: student-0.0.1-SNAPSHOT.jar - 端口: 8080 ↓ 启动项目
     

 

草了为什么我浏览器访问不了宝塔明明都配好了

牛逼:解决:阿里云服务器安装宝塔后添加安全组仍无法访问_宝塔安装好了 安全组也加了 但是面板还是打不开怎么办?-CSDN博客

 

虽然用宝塔启动了项目但还是不知道怎么玩这东西,项目怎么放进去,服务器公网怎么搞进去,数据库倒是能直接从服务器连接导下来,难不成宝塔只是个图形化界面,实际上配置java环境安装mysql创建数据库什么的还是在终端用命令代码搞

草了功能用不了只是界面能显示(原来是宝塔终端没了项目自动停止运行了)

大模型回答

宝塔面板本质是​​图形化封装命令行操作​​的服务器管理工具,能大幅简化环境配置和项目部署流程。以下是具体解决方案:


🔧 一、项目部署全流程(无需终端命令)

  1. ​​上传项目文件​​

    • 进入宝塔面板 → ​​文件​​ → 定位到网站根目录(如/www/wwwroot/your_site
    • 直接拖拽本地JAR包或WAR文件到该目录
    • 修改文件权限:选中文件 → 点击“权限” → 设置为755(确保可执行)
  2. ​​配置Java环境​​

    • ​​软件商店​​ → 搜索“JDK” → 选择版本(推荐JDK17)→ 一键安装
    • 环境变量自动配置,无需手动设置JAVA_HOME
  3. ​​启动Spring Boot项目​​

    • 方式1:​​计划任务​​ → 添加Shell脚本 → 输入启动命令:
      cd /www/wwwroot/your_site && nohup java -jar your_app.jar > app.log 2>&1 &
      设置执行周期为“每分钟”(测试)或“开机启动”
    • 方式2:通过​​SSH终端​​(面板内置)直接运行命令(适合临时调试)

🌐 二、公网访问配置

获取公网IP:SSH执行 curl ifconfig.me

端口冲突处理:若端口被占用(如Nginx占8080),修改Spring Boot的server.port(在application.properties中设置)


💾 三、数据库管理(纯图形化操作)

  1. ​​创建数据库​​
    • 宝塔 → ​​数据库​​ → 添加数据库 → 设置账号密码
       
  2. ​​导入数据​​
    • 选中数据库 → ​​导入​​ → 上传SQL文件 → 执行
  3. ​​远程连接​​
    • 开启​​权限设置​​:点击数据库 → 权限改为“所有人”或指定IP
    • 用Navicat等工具连接:
      地址:服务器公网IP 端口:3306 账号/密码:宝塔中设置的凭据

💡 实用建议

  1. ​​项目目录规范​​
    • 将JAR包放在/www/wwwroot独立子目录,避免混放
  2. ​​日志监控​​
    • 宝塔 → ​​文件​​ → 实时查看app.log(或通过​​计划任务​​定时清理日志)
  3. ​​安全加固​​
    • 修改面板默认端口(​​面板设置​​ → 端口) + 启用BasicAuth认证
    • 数据库权限按需分配,避免开放root@%

 

 

草捣鼓宝塔导致我数据库连不上了

核心错误分析​​

  1. ​​[ERROR] [MY-012526] [InnoDB] Upgrade is not supported after a crash...​​

    • ​​原因​​:MySQL 在崩溃或使用 innodb_fast_shutdown=2 关闭后,​​Redo 日志(ib_logfile*)未完全清理​​,导致升级到新版本时无法初始化
    • ​​关键提示​​:日志明确指向 MySQL 5.7.40 创建的 Redo 日志与当前版本不兼容。
  2. ​​[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine​​

    • ​​原因​​:数据字典(Data Dictionary)初始化失败,通常由 ​​InnoDB 系统表空间(ibdata1)损坏​​ 或 ​​版本冲突​​ 引起
  3. ​​[ERROR] [MY-010020] [Server] Data Dictionary initialization failed​​

    • ​​连锁反应​​:InnoDB 初始化失败直接导致数据字典无法加载,最终服务中止

根据操作日志和错误信息,MySQL 启动失败的核心问题已明确,以下是系统化的解决方案:


🔍 ​​问题诊断​​

  1. ​​关键错误​​:

    Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
    • ​​原因​​:MySQL 禁止以 root 用户直接运行 mysqld 进程,这是安全策略限制
  2. ​​文件缺失问题​​:

    mv: cannot stat '/var/lib/mysql/ib_logfile*': No such file or directory cp: cannot stat '/var/lib/mysql/ibdata1': No such file or directory
    • ​​原因​​:数据目录可能不在默认位置(/var/lib/mysql),或文件已被删除/移动。
  3. ​​Redo 日志兼容性问题​​(前期日志):

    Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2
    • ​​原因​​:MySQL 5.7 升级到 8.0 后,旧版 Redo 日志(ib_logfile*)不兼容

 我在搞宝塔之前用xshell全命令上面部署过了,然后现在搞宝塔mysql版本不一样

 好的太麻烦了我直接磁盘回滚到创建宝塔之前的状态了(完全用命令把8080端口的项目能运行的版本)(先关了服务器再回滚)

之后检查一下防火墙和安全组,然后检查端口是否被占用,然后重启一下服务器

能成功8080端口运行(不管是服务器那个一键连接还是xshell来跑jar包,只要关掉界面就会停止运行)

为什么我明明把jar包端口改成了8800,为什么运行出来还是8080,检查发现有比yml级别更高的配置文件find /opt/myapp -name "application.*"

草不要乱删这个文件,虽然这个文件写着端口8080,但是我删完数据库连不上了,还是运行不了8800,然后又回滚了

 

 不对我又回滚了一次这东西里面的端口改成8800好像不影响jar包的运行关了重新运行也能用只不过还是8080端口运行

 然后我把项目换成8800端口再打包成jar覆盖服务器原本的jar包,然后显示运行成功,但是不管8080还是8800端口都出不来

 现在一顿操作之后出来的还是8080的界面但是功能用不了

用端口测试工具测试8800和8080都是关闭状态

网站端口扫描结果

然后问人

您好, 请在服务器上执行

检查步骤:

  1. 查看iptables规则:sudo iptables -L
  2. 查看firewalld服务状态:sudo systemctl status firewalld
  3. 查看firewalld放行的端口:sudo firewall-cmd --zone=public --list-ports
  4. 查看ufw状态:sudo ufw status (如果系统使用ufw)

截图反馈查看防火墙端口放行的情况

然后把执行结果给大模型

🚨 根本问题确认

您的8800端口被firewalld拦截​​,这是导致公网无法访问的唯一技术原因!

您好, 查看提供的截图是开启了firewalld防火墙,查看没有放行8800端口请执行以下命令,在重新连接测试下,谢谢

firewall-cmd --zone=public --add-port=8800/tcp --permanent

firewall-cmd --reload

牛逼,8800端口开启了

而且浏览器访问端口8800能用了界面出来了而且功能正常

这个还是8080,看来项目端口运行跟这个没关系

  

 

原来这个轻量级服务器本来就自带有宝塔

先去数据库那里把远程数据库,添加远程数据库,把数据库同步下来然后换成自己项目的密码,如果提示改不了的话就先把面板的数据库同步·到服务器,然后再从服务器把数据库同步回面板,然后就能改了

改好之后就去网站,点击java项目

把过长的项目名称改一下应该就好了相当于图形化界面启动了,先关了宝塔刚刚添加下来的网站,

然后叉掉xshell的命令行界面,看看浏览器的界面是不是关掉了,然后重新在宝塔启动网站,看看浏览器是不是能显示而且功能能使用,能用就说明部署好了

 

宝塔能添加数据库,但是这个数据库怎么来的,还是我在服务器命令行从用户创建开始到sql语句一点一点创建,最后再导入到宝塔数据库吗

 

在宝塔面板中管理数据库非常方便,您不需要手动创建用户或逐行执行 SQL 命令。下面是完整的数据库创建和管理流程:

🛠️ 宝塔数据库管理完整指南

1️⃣ ​​宝塔面板创建数据库(最简单方式)​​

登录宝塔面板

进入数据库页面

点击添加数据库

填写数据库信息

创建成功

导入SQL文件

具体步骤:

  1. 进入宝塔面板左侧菜单 > 数据库
  2. 点击右上角「添加数据库」
  3. 填写:
    • 数据库名:例如 mydb
    • 用户名:自动生成或自定义
    • 密码:自动生成或手动设置
    • 权限:通常选择"所有权限"
  4. 点击「提交」

宝塔会自动完成:

  • 创建数据库
  • 创建对应的数据库用户
  • 赋予该用户对数据库的权限
  • 设置访问权限(默认localhost)

2️⃣ ​​数据库来源及导入​​

▶ ​​数据库来源​​

  1. ​​全新创建​​

    • 在宝塔面板创建空数据库
    • 后续使用phpMyAdmin或命令行导入SQL文件
  2. ​​导入现有数据库​​

    • 本地开发的SQL文件(开发环境导出)
    • 旧服务器迁移的数据库备份
    • 从其他云服务导出的数据库备份

▶ ​​导入SQL到宝塔数据库​​

​​方法一:通过宝塔面板导入​​

  1. 宝塔 > 数据库 > 找到目标数据库
  2. 点击右侧「导入」按钮
  3. 上传SQL文件或粘贴SQL命令

​​方法二:通过phpMyAdmin导入​​

  1. 宝塔 > 数据库 > 点击「管理」
  2. 在phpMyAdmin中选择目标数据库
  3. 顶部菜单「导入」> 选择SQL文件上传

​​方法三:命令行导入​​

 
# 进入宝塔MySQL目录(路径可能不同) cd /www/server/mysql/bin # 导入SQL文件到数据库 ./mysql -u 用户名 -p 数据库名 < /路径/到/文件.sql

3️⃣ ​​高级管理功能​​

▶ ​​命令行创建数据库(备选)​​

 
# 登录MySQL mysql -u root -p # 创建数据库 CREATE DATABASE `new_db` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 创建用户并授权 GRANT ALL PRIVILEGES ON `new_db`.* TO 'new_user'@'localhost' IDENTIFIED BY 'Strong_P@ssw0rd'; FLUSH PRIVILEGES;

▶ ​​宝塔的数据库配置路径​​

  • 配置文件路径:/www/server/mysql/my.cnf
  • 数据库存储路径:/www/server/data/
  • 备份路径:/www/backup/database/

4️⃣ ​​数据库连接信息获取​​

在宝塔面板数据库页面,每个数据库条目显示:

  • 数据库名
  • 用户名
  • 访问地址(通常是localhost
  • 端口(默认3306)

5️⃣ ​​应用场景示例​​

▶ ​​网站部署流程​​

宝塔创建数据库

安装WordPress

在WordPress安装向导中输入数据库信息

自动完成数据库配置

▶ ​​手动导入场景​​

  1. 从旧服务器导出SQL文件:
     
    mysqldump -u 用户名 -p 数据库名 > backup.sql
  2. 宝塔创建新数据库
  3. 导入SQL文件
  4. 修改网站配置文件(如wp-config.php)
posted @ 2025-06-02 20:38  BKYNEKO  阅读(124)  评论(0)    收藏  举报