準(zhǔn)備服務(wù)器
既然是在服務(wù)器上操作木柬,那服務(wù)器肯定得準(zhǔn)備好锐朴,我這里購(gòu)買(mǎi)的是阿里云的服務(wù)器(CentOS 8
)囱皿,因?yàn)槲易约菏褂玫碾娔X是 MacBook Pro , 所以下文中統(tǒng)一默認(rèn)環(huán)境為:CentOS 8
、mac 終端
;服務(wù)器公網(wǎng) IP 統(tǒng)一以:110.110.110.110
來(lái)舉例肛走。
首先登陸服務(wù)器,root 是阿里云服務(wù)器默認(rèn)的賬號(hào)名录别,終端輸入命令之后會(huì)提示輸入你的服務(wù)器密碼(輸入密碼的時(shí)候是不顯示的)朽色。
ssh root@110.110.110.110
window 系統(tǒng),可以用 Xshell 或 Putty 來(lái)登錄
把yum更新到最新版本:
yum -y update
升級(jí)常用庫(kù)文件, 安裝 node.js 需要通過(guò) g++ 進(jìn)行編譯组题。
yum -y install gcc gcc-c++ autoconf
常用的 Linux 命令:
cd 進(jìn)入目錄
cd .. 返回上一個(gè)目錄
ls 查看當(dāng)前目錄
mkdir abc 創(chuàng)建abc文件夾
mv 移動(dòng)或重命名
rm 刪除一個(gè)文件或者目錄
node 安裝
1.進(jìn)入到 /usr/local/src
目錄葫男,存放軟件源代碼。
cd /usr/local/src
2.獲取下載地址:node官網(wǎng)下載地址 崔列,或者下載到本地通過(guò) scp
命令上傳文件到服務(wù)器梢褐。
3.執(zhí)行下載命令:
wget https://nodejs.org/dist/v14.15.0/node-v14.15.0.tar.gz
4.解壓縮源文件,并且進(jìn)入到壓縮后的文件夾中:
tar zxf node-v14.15.0.tar.gz
cd node-v14.15.0
5.執(zhí)行配置腳本來(lái)進(jìn)行編譯預(yù)處理:
./configure
6.編譯源代碼,這個(gè)過(guò)程會(huì)有點(diǎn)長(zhǎng)赵讯,耐心等待盈咳。
make
7.當(dāng)編譯完成后,我們需要使之在系統(tǒng)范圍內(nèi)可用, 編譯后的二進(jìn)制文件將被放置到系統(tǒng)路徑边翼,默認(rèn)情況下鱼响,Node
二進(jìn)制文件應(yīng)該放在/user/local/bin/node
文件夾下:
make install
8.建立軟鏈接, 不然使用時(shí)會(huì)報(bào)錯(cuò) "command not found"
sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
9.測(cè)試一下,查看版本號(hào):
node -v
npm -v
ok组底,版本號(hào)正常顯示丈积,安裝完成。
mongodb 安裝
安裝說(shuō)明:
- 系統(tǒng)環(huán)境:
Centos-8
- 軟件安裝位置:
/usr/local/mongodb
- 數(shù)據(jù)存放位置:
/usr/local/mongodb/data
- 日志存放位置:
/usr/local/mongodb/logs
下載地址:mongodb 選擇自己相對(duì)應(yīng)的環(huán)境和版本债鸡。
進(jìn)入文件夾/usr/local
,下載mongodb源代碼:
cd /usr/local
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.1.tgz
解壓安裝包江滨,重命名文件夾為 mongodb
tar zxvf mongodb-linux-x86_64-rhel80-4.4.1.tgz
mv mongodb-linux-x86_64-rhel80-4.4.1 mongodb
配置變量環(huán)境:
export PATH=/usr/local/mongodb/bin:$PATH
直接執(zhí)行此命令,只會(huì)創(chuàng)建出臨時(shí)的環(huán)境變量厌均,重新斷開(kāi)連接服務(wù)器后會(huì)失效.
環(huán)境變量持久化配置:
在 /etc/profile
文件中唬滑,添加 export PATH=/usr/local/mongodb/bin:$PATH
;
vim /etc/profile
...
不會(huì)
vim
操作的請(qǐng)自行查看相應(yīng)的文檔教程,比如:vim
模式下,要按i
才能插入內(nèi)容间雀,輸入完之后悔详,要按shift
加:wq
才能保存退出。
然后使系統(tǒng)環(huán)境變量立即生效:
source /etc/profile
查看是否安裝成功:
mongod --version
如圖惹挟,表示安裝成功:
mongodb 啟動(dòng)配置
創(chuàng)建數(shù)據(jù)庫(kù)目錄和日志目錄:
mkdir /usr/local/mongodb/data
mkdir /usr/local/mongodb/data/db
mkdir /usr/local/mongodb/logs
配置 mongod
啟動(dòng)文件,在 /usr/local/mongodb/etc
下創(chuàng)建配置文件mongod.config
:
vim /usr/local/mongodb/etc/mongod.config
dbpath=/usr/local/mongodb/data # 數(shù)據(jù)庫(kù)存放位置(之前創(chuàng)建的)
logpath=/usr/local/mongodb/logs/mongodb.log # 數(shù)據(jù)庫(kù)日志存放位置(之前創(chuàng)建的)
port=27017
fork=true #后臺(tái)運(yùn)行
auth=false # 初次配置先關(guān)了權(quán)限驗(yàn)證登陸模式
journal=false
啟動(dòng) mongod
:
mongod -f /usr/local/mongod/etc/mongod.config
進(jìn)入數(shù)據(jù)庫(kù)管理命令界面:
mongo
切換到 admin
數(shù)據(jù)庫(kù)茄螃,創(chuàng)建超級(jí)管理員帳號(hào):
use admin
db.createUser({ user: "用戶名", pwd:"登錄密碼", roles:[{ role: "userAdminAnyDatabase", db: "admin" }] })
運(yùn)行結(jié)果:
Successfully added user: {
"user" : "用戶名",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
切換到要使用的數(shù)據(jù)庫(kù),如 blog
數(shù)據(jù)庫(kù)连锯,創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)的管理員帳號(hào):
use blog
db.createUser({ user: "用戶名", pwd:"登錄密碼", roles:[ { role: "readWrite", db: "blog" }] //讀寫(xiě)權(quán)限 })
退出服務(wù),謹(jǐn)慎使用
kill
直接去殺掉mongodb
進(jìn)程归苍,可以使用db.shutdownServer()
關(guān)閉.使用權(quán)限方式啟動(dòng)
MongoDB
,在配置文件中添加:auth=true
, 然后啟動(dòng):mongod -f /usr/local/mongod/etc/mongod.config
進(jìn)入
mongo shell
,使用admin
數(shù)據(jù)庫(kù)use admin
并進(jìn)行驗(yàn)證db.auth('用戶名','登錄密碼')
运怖,驗(yàn)證成功返回1
失敗返回0
;如果不驗(yàn)證或驗(yàn)證失敗拼弃,是做不了任何操作的.
MongoDB設(shè)置為系統(tǒng)服務(wù)并且設(shè)置開(kāi)機(jī)啟動(dòng)
在服務(wù)器的系統(tǒng)服務(wù)文件中添加 mongod
配置:
vim /etc/rc.d/init.d/mongod
輸入:
start() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongod.config
}
stop() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongod.config --shutdown
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo
$"Usage: $0 {start|stop|restart}"
exit 1
esac
保存并添加腳本執(zhí)行權(quán)限:
chmod +x /etc/rc.d/init.d/mongod
可以試試使用 service mongod [start|stop|restart|try-restart|reload|force-reload| status]
來(lái)直接管理 MongoDB
服務(wù)啦。
// 關(guān)閉
service mongod stop
// 啟動(dòng)
service mongod start
遠(yuǎn)程連接服務(wù)器數(shù)據(jù)庫(kù)
確保服務(wù)器安全規(guī)則端口已開(kāi)放摇展、防火墻設(shè)置沒(méi)問(wèn)題吻氧;連接命令:
mongo 110.110.110.110:27017/blog -u 用戶名 -p 登錄密碼
- 報(bào)錯(cuò)連接失敗,拒絕連接:
- 原因:云服務(wù)器中安裝MongoDB后(默認(rèn)端口27017)咏连,默認(rèn)綁定IP為
127.0.0.1
盯孙,這就導(dǎo)致外部無(wú)法訪問(wèn); - 決解: 修改mongod.config配置文件祟滴,添加
bind_ip=0.0.0.0
綁定公網(wǎng)IP; - 重啟mongodb服務(wù)
service mongod restart
- 原因:云服務(wù)器中安裝MongoDB后(默認(rèn)端口27017)咏连,默認(rèn)綁定IP為
- 啟動(dòng)服務(wù)報(bào)錯(cuò):
about to fork child process, waiting until server is ready for connections. forked process: 11300 ERROR: child process failed, exited with error number 48
- 原因:沒(méi)有正常關(guān)閉mongodb引起的振惰,比如直接 kill -9 <pid>導(dǎo)致
- 決解:
- 找到
data/mongod.lock
文件,并刪除mongod.lock
垄懂; - 以修復(fù)方式啟動(dòng)mongod:
mongod -f usr/local/mongodb/etc/mongod.config --repair
; - 再次啟動(dòng)
service mongod start
- 找到