記第一次部署 spring boot 專案到雲伺服器全過程
雲伺服器設定
我這裡用的是阿里雲的雲伺服器ECS,購買了伺服器後需要記住以下內容:
- 公網 IP:可以從簡訊獲取,買完後後給你發簡訊,裡面有公網 IP。也可以從 阿里雲的雲伺服器管理控制檯的例項列表裡獲取。
- 系統使用者名稱:root
- 例項密碼:未設定密碼或者忘記密碼都可以在例項列表裡點選更多—>重置例項密碼
開放埠
例項列表—>安全組配置—>配置規則
新增安全規則:
在入方向手動新增,協議型別一般是TCP,埠看你的需求,例如用到了MySQL就選擇3306埠,我的專案的埠配置是8181,所有也添加了8181埠, 授權物件是誰可以使用這個埠,所有人均可以是0.0.0.0/0
遠端連線雲伺服器
遠端連線工具有挺多的,例項列表裡自帶的遠端連線,windows PowerShell,Xshell等
下面是Xshell
的操作過程:
- 開啟
Xshell
會出現以下介面
- 新建會話並按以下順序操作,主機填公網IP,埠號22,然後進入使用者身份驗證
- 填入使用者名稱和你的例項密碼,點選連線即可
- 出現以下資訊即連線成功
至此已遠端連線到伺服器
環境部署
寶塔面板安裝
這裡採用安裝寶塔面板部署環境,我個人覺得這種方式挺簡單的
注:使用寶塔面板需要放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! 一切就緒
Navicat連線資料庫
連線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關閉
注 :所遇問題解決在文末
Navicat 連線資料庫問題及解決方法
- 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