centos7上安裝YAPI項目【軟件搭建】

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目錄下

其中mongodServer端程序

mongoClient端程序

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章