Beego 部署 Server 執行錯誤問題

2021-10-01 06:41:16 字數 1584 閱讀 2647

最近學習了go語言,使用beego框架部署服務,本地開發完編譯後,興高彩烈部署到window server上去,

執行直接閃退,使用命令列方式執行返回如下錯誤:

[orm]2019/12/04 16:03:43 register db `default`, the system cannot find the path specified.

[orm]2019/12/04 16:03:43 register db `admin`, the system cannot find the path specified.

panic: unknown database alias name default

通過搜尋找到如下解決方案。

windows server上 gorm 連線db提示 the system cannot find the path specified

loadlocation 有個問題,它依賴於 iana time zone database

這個資料庫,一般linux系統都帶了,但是windows系統就沒帶。沒有 tzdata 就會從$goroot/中找。但很明顯,windows

server並沒有裝golang,所以肯定會找不到指定路徑,因此會提示這個看似搭不上邊的錯誤。(linux就不用管)

原因是mysql連線資料庫需要指定時間區域,會去讀取zoneinfo.zip,伺服器沒有go環境所以會報錯。

func

loadlocation

(name string)(

*location,

error

)if name ==

"local"

ifcontainsdotdot

(name)

|| name[0]

=='/'

|| name[0]

=='\\'

zoneinfoonce.do(

func()

)var firsterr error

if*zoneinfo !=

"" firsterr = err

}else

if err != syscall.enoent

}if z, err :=

loadlocation

(name, zonesources)

; err ==

nilelse

if firsterr ==

nilreturn

nil, firsterr

}

讀取loacation,指定loc=local就不會繼續查詢定位區域

指定mysql的連線引數中,新增引數**&loc=local**,就不會去查詢zip檔案,推薦這個方法,可以在沒有go環境的機器上執行

拷貝zoneinfo.zip檔案拷貝到伺服器,並指定環境變數goroot

goroot=『c:\go』

注意zoneinfo.zip檔案有時候會讀取失敗,可能是壓縮方式不同到時go**打不開,我就碰到碰到了這樣的問題。換了乙個就可以了。

最後說一句,真是坑啊

beego開發部署

需要完整測試好專案的完整,將 部署到 git 環境,因為我自己在伺服器搭建了 git 伺服器,所以暫時不用 github,我使用的是gitolite來配合 git 伺服器進行管理,選擇他的理由是許可權分配和倉庫管理實在是方便,雖然是我乙個人開發,但是這個許可權用起來很好,後面另一篇文章會講述gito...

Beego打包部署到Linux

打包 開啟terminal 定位到工程的 main.go 資料夾目錄 使用命令 bee pack be goos linux 進行打包 打包成windows 命令 bee pack be goos windows 部署將打包好的程式,放到linux上的某個目錄。將程式放在後台執行,這裡使用scree...

用URLOS一鍵部署beego框架

最近看到很多小夥伴都在問,beego框架怎麼安裝?beego框架安裝步驟是什麼?今天沒,我來介紹一下beego框架在linux下的安裝教程。為方便大家使用,我把一鍵安裝命令發出來 export domains website 879842.com export ports 80 8080 expor...