linux上安裝YAPI項目 【軟件搭建】
YAPI安裝
1.安裝node
curl -O https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz #下載
tar xf node-v10.9.0-linux-x64.tar.xz #解壓
ln -s 【node解壓包路徑】/bin/npm /usr/local/bin/ #快捷方式
ln -s 【node解壓包路徑】/bin/node /usr/local/bin/
node -v
v10.9.0
2.安裝mongodb
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz #下載
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz #解壓
vim /etc/profile
export PATH=【mongodb解壓包路徑】/bin:$PATH #添加環境變量
source /etc/profile
添加在MongoDB目錄下創建一個配置文件
vim mongodb.conf
dbpath=【DB數據存放目錄】
logpath=【DB日誌存放目錄】/mongod.log
logappend=true
fork=true #後臺運行,命令行窗口關掉也不影響
#啓動服務端
./mongod -f mongodb.conf
#啓動客戶端
./mongo
3.安裝Yapi
npm install -g yapi-cli --registry https://registry.npm.taobao.org #安裝yapi
使用yapi啓動服務
yapi server #運行起來,請先確保MongoDB啓動起來
#關閉
kill -9 pid
查看提示信息,填寫部署信息,建議1.60版本(建議不要用太新的版本),部署完成後根據提示操作即可
由於提示中使用的node 啓動的,窗口關閉後會停止yapi服務,所以建議使用pm2管理,yapi在後臺運行
使用PM2啓動服務
npm install -g pm2 #pm2安裝
pm2 start 【Yapi啓動的目錄】/my-yapi/vendors/server/app.js #啓動
pm2 stop 【Yapi啓動的目錄】/my-yapi/vendors/server/app.js #關閉
這樣以後就可以很方便的用pm2就行啓動關閉啦
注意:pm2啓動的服務 kill -9 pid 是殺不掉的,所以還要用pm2 stop關閉yapi
二、數據丟失問題?
issues:莫名數據庫裏的數據就沒了
原因:默認配置
mongoddb使用默認配置端口號,且沒有設置賬號和密碼,被黑客惡意刪庫。
所有數據都是備份的。您必須支付0.015 BTC到16Vk6GrQYwzXvNxdBq7Zp6TGnwPEhpBWgB
48小時才能恢復。在48小時到期後,我們將泄露並公開您的所有數據。如果拒絕付款,我們將聯繫通用數據保護條例(GDPR),並通知他們您以開放形式存儲用戶數據,並且不安全。根據法律規定,您將面臨嚴厲的罰款或逮捕,您的基地垃圾將從我們的服務器上丟棄!您可以在這裏購買比特幣,使用本指南購買https://localbitcoins.com不需要花費太多時間https://localbitcoins.com/guides/how-to-buy-bitcoins後,使用您的DB
IP:[email protected]在郵件中寫信給我
解決:修改端口,添加賬號
參考鏈接:https://blog.csdn.net/kxzhaohuan/article/details/81713949
修數據庫端口
vim 【mongodb目錄】/conf/mongodb.conf
#末尾添加,即可覆蓋20
port=【端口號】
添加賬號密碼權限
#以非安全模式啓動mongod
./mongod -f 【mongodb目錄】/conf/mongod.conf
use admin
db.createUser({user:"root",pwd:"【密碼】",roles:[{role:"root",db:"admin"}]});
db.auth("root","【密碼】")
use yapi
db.createUser({user:"root",pwd:"【密碼】",roles:[{role:"readWrite",db:"yapi"}]})
db.auth("root","【密碼】")
#退出 kill -9 [mongod Pid]
#重新啓動服務
./mongod -f 【mongodb目錄】/conf/mongod.conf -auth
#嘗試使用客戶端連接
./mongo --port 【端口號】 -u root -p 【密碼】
Yapi配置
vim 【Yapi目錄】/config.json
{
"port": "7001",
"adminAccount": "[email protected]",
"db": {
"servername":"127.0.0.1",
"DATABASE":"yapi",
"port":"【數據庫端口】",
"user":"【用戶名】",
"pass":"【密碼】"
},
"mail": {
"enable": false,
"host": "smtp.163.com",
"port": 465,
"from": "***@163.com",
"auth": {
"user": "***@163.com",
"pass": "*****"
}
}
}
此時mongoddb的啓動方式爲:
./mongod -f 【mongodb目錄】/conf/mongod.conf -auth
及安全模式,重新啓動yapi即可。
三、mongoddb擴展知識
主要程序位於解壓包的/bin目錄下
其中mongod
爲Server
端程序
而mongo
爲Client
端程序
1.Server端啓動方式
#普通方式啓動
./mongod
#帶配置文件的啓動方式
./mongod -f 【mongodb目錄】/conf/mongod.conf
#需要驗證權限的方式啓動
./mongod -f 【mongodb目錄】/conf/mongod.conf -auth
基本參數:
-f 指定配置文件
–port 指定端口,默認是27017
–dbpath 數據目錄路徑
–logpath 日誌文件路徑
–logappend 日誌append而不是overwrite
–fork 以創建子進程的方式運行
–journal 日誌提交間隔,默認100ms
–nojournal 關閉日誌功能,2.0版本以上是默認開啓的
參考:http://www.mongodb.org/display/DOCS/File+Based+Configuration
2.Client端的一些操作
#普通方式啓動
./mongo
#查看當前庫
db
#切換使用庫
use admin
use test
#查看所有庫
show dbs
#查看當前庫有哪些表
show collections
> system.indexes
> system.users
#查看當前庫的user表
show users
#根據當前庫,查看當前庫支持哪些操作
db.help();
#根據當前表,查看當前庫支持哪些操作
db.users.help()
3.授權
use admin
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]});
db.auth("root","123456")
use yapi
db.createUser({user:"root",pwd:"123456",roles:[{role:"readWrite",db:"yapi"}]})
db.auth("root","123456")
4.關閉
#【mongo中關閉】
use admin
#正常關閉
db.shutdownServer()
#強制關閉
db.shutdownServer({force : true})
#【直接殺死進程關閉】
#查看進程
ps -ef|grep mongod
#殺死進程
kill -9 [pid]
強制關閉Mongod,應對副本集中主從時間差超過10s時不允許關閉主庫的情況
不要使用kill直接殺mongo進程的方式關閉數據節點,會造成數據損壞
5.常見問題
錯誤提示:
2020-04-23T10:25:37.656+0800 E QUERY [thread1] Error: listCollections failed: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { listCollections: 1.0, filter: {}, $db: \"admin\" }",
"code" : 13,
"codeName" : "Unauthorized"
} :
快速排查權限的問題
權限類問題,如果是用戶權限問題,不太好排查,可以關閉服務端.
重新啓動服務端,不要帶-auth
參數,這樣就可以取消檢測權限了,
可以查看一下admin庫中的user表狀態和相關的權限。
安全模式與非安全模式快速切換腳本
將switch.sh腳本放在bin目錄下可以方便切換mongod的啓動方式
switch.sh
param=
if [ -n "$1" ];
then param=" -auth" ;
fi
#echo $param
pid=`ps -ef |grep "mongod"|grep -v "grep" |awk '{print $2}'`
if [ -n "$pid" ]; then
echo "kill -9 $pid"
kill -9 $pid
fi
cd 【mongod目錄】/bin
./mongod -f 【mongod目錄】/conf/mongod.conf $param
newPid=`ps -ef |grep "mongod"|grep -v "grep" |awk '{print $2}'`
#echo "start $newPid"
腳本來切換mongod的模式
#非安全模式
sh switch
#安全模式
sh switch auth