1. 程式人生 > 實用技巧 >記第一次部署 spring boot 專案到雲伺服器全過程

記第一次部署 spring boot 專案到雲伺服器全過程

雲伺服器設定

我這裡用的是阿里雲的雲伺服器ECS,購買了伺服器後需要記住以下內容:

  • 公網 IP:可以從簡訊獲取,買完後後給你發簡訊,裡面有公網 IP。也可以從 阿里雲的雲伺服器管理控制檯的例項列表裡獲取。

  • 系統使用者名稱:root
  • 例項密碼:未設定密碼或者忘記密碼都可以在例項列表裡點選更多—>重置例項密碼

開放埠

例項列表—>安全組配置—>配置規則

新增安全規則

在入方向手動新增,協議型別一般是TCP,看你的需求,例如用到了MySQL就選擇3306埠,我的專案的埠配置是8181,所有也添加了8181埠, 授權物件是誰可以使用這個埠,所有人均可以是0.0.0.0/0

遠端連線雲伺服器

遠端連線工具有挺多的,例項列表裡自帶的遠端連線,windows PowerShell,Xshell等

下面是Xshell的操作過程:

  1. 開啟Xshell會出現以下介面

  1. 新建會話並按以下順序操作,主機填公網IP,埠號22,然後進入使用者身份驗證

  1. 填入使用者名稱和你的例項密碼,點選連線即可

  1. 出現以下資訊即連線成功

至此已遠端連線到伺服器

環境部署

寶塔面板安裝

這裡採用安裝寶塔面板部署環境,我個人覺得這種方式挺簡單的

:使用寶塔面板需要放8888

首先輸入以下命令

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

記住外面版地址,使用者名稱,密碼,然後瀏覽器輸入外面板地址進入寶塔面板

軟體安裝

根據你自己的需要安裝,其實我的 spring boot專案是打包成jar包的,內嵌了tomcat,這裡下載 tomcat 的原因是因為寶塔在下載tomcat 時會把 jdk1.8也裝了,就不需要我再配置了

裝完後進行環境檢查

根據需要放行埠

資料庫root密碼改密

ok! 一切就緒

連線MySQL資料庫

:文末記錄著我遇到的連線問題及解決方法

轉儲 sql 檔案

  • 先在遠端資料庫上新建一個相同名字的資料庫,例如我本地的資料庫叫qm,就在遠端的新建一個qm資料庫
  • 我想把資料也複製過去,這裡選擇的是“結構和資料”

  • 然後在遠端資料庫上執行你轉儲的sql檔案即可

spring boot 專案打包部署

打包

這裡我是用 idea 打包成jar

打包完後到專案的 target 目錄下會產生兩個檔案

部署

在寶塔面板上傳檔案

進入目錄,執行專案

至此大功告成!

但會出現一個問題,隨著 ssh 斷開,服務也會關閉。我們可以用守護程序的方式來讓服務執行在後臺。

nohup java -jar qm-0.0.1-SNAPSHOT.jar &

這個專案就會在後臺執行,同時在當前專案生成一個 nohup.out 日誌。

nohup java -jar xxx.jar  >> myout.log 2>&1  &    //指定日誌

關閉程序

ps aux|grep qm.0.0.1-SNAPSHOT.jar //找到pid
kill -9 pid  //根據pid關閉

:所遇問題解決在文末

  • 2003錯誤:沒有在寶塔頁面和雲伺服器安全組開放3306埠
  • 1130錯誤:user表中沒有許可權
    • 連線:mysql -u root -p
    • 進入mysql資料庫: use mysql;
    • 檢視user表中的資料:select Host,User from user;
    • 修改user表中的Host:update user set Host='%' where User='root';
    • 重新整理:flush privileges;

圖示說明:

可以看到 root 對應的是 %,這是因為我已經修改了,原先對應的是 localhost。也可以新增新的User和Host。

spring boot 專案執行失敗解決

我的是因為 jdk 版本不對,spring boot 專案是jdk14,環境是 jdk1.8

pom.xml 中把 java 版本改成1.8就好

<properties>
    <java.version>1.8</java.version>
</properties>

參考部落格連結

https://www.jianshu.com/p/2957b5abba6a

https://blog.csdn.net/sql521hawk/article/details/81562190

https://blog.csdn.net/qq_41463655/article/details/89683139