最近學習了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原因是mysql連線資料庫需要指定時間區域,會去讀取zoneinfo.zip,伺服器沒有go環境所以會報錯。這個資料庫,一般linux系統都帶了,但是windows系統就沒帶。沒有 tzdata 就會從$goroot/中找。但很明顯,windows
server並沒有裝golang,所以肯定會找不到指定路徑,因此會提示這個看似搭不上邊的錯誤。(linux就不用管)
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...