問題描述
使用 docker 部署,后臺設置開啟驗證,重啟服務器之后,docker重啟,再次訪問系統,驗證碼獲取失敗,導致無法進行驗證,也就無法登陸系統。
如果不了解卷王的,可以去官網看下。
https://surveyking.cn/
問題解決
1. 關閉驗證,繼續使用
通過 docker 容器,將 /surveyking/surveyking.mv.db 復制到宿主機中。
使用 h2 數據庫連接工具(可使用 datagrip,驅動為最新版本驅動)
賬號為:sa
密碼為:sa
連接方式:embedded
參考連接:(連接地址上面,不要加后綴.mv.db)
jdbc:h2:~/TEMP/surveyking
連接成功后,在 PUBLIC 的 schemas 下面,會有一張T_SYS_INFO
表。
將這張表的 SETTING 字段,設置為 {“captchaEnabled”:false}
保存后,將數據庫文件,通過 docker 命令,復制到容器內,覆蓋原有內容。
注意命名不要發生改變。
重啟 docker 容器,再次訪問,驗證即關閉了。
2. 數據遷移,重新部署
通過 docker 容器,將 /surveyking/surveyking.mv.db 復制到宿主機中。
使用 h2 數據庫連接工具(可使用 datagrip,驅動為最新版本驅動)
賬號為:sa
密碼為:sa
連接方式:embedded
參考連接:(連接地址上面,不要加后綴.mv.db)
jdbc:h2:~/TEMP/surveyking
連接成功后,復制下面幾張表中的數據
- T_ANSWER:收集數據
- T_PROJECT:項目配置
- T_PROJECT_PARTNER:項目協作者配置(該表數據會有重復,將id 不重復的復制進去即可)
復制這幾張表數據后,將數據導入到自己的 mysql 數據庫中。
然后重新部署,使用 mysql 數據庫,后續問題更方便排查一些。
參考啟動腳本
APP_NAME=/opt/surveyking/surveyking-v1.6.0.jar
# 部署后端
nohup java -jar ${APP_NAME} \
--spring.datasource.dynamic.datasource.master.url=jdbc:mysql://localhost:3306/surveyking \
--spring.datasource.dynamic.datasource.master.username=surveyking \
--spring.datasource.dynamic.datasource.master.password=surveyking \
--server.port=1991 \
--file-storage.local.root-path=/opt/surveyking/files >> /opt/surveyking/qustion.log &