1. 程式人生 > >安裝mongodb, 並遠端連線雲伺服器,以及報錯:xxx is not in the sudoers file.This incident will be reported.

安裝mongodb, 並遠端連線雲伺服器,以及報錯:xxx is not in the sudoers file.This incident will be reported.

一 . 在Ubuntu 上安裝 MongoDB

1.匯入包管理系統所使用的公鑰

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

2.為MangoDB建立一個列表檔案

Ubuntu 14.04

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list
.d/mongodb-org-4.0.list

Ubuntu 16.04

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Ubuntu 18.04

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list
.d/mongodb-org-4.0.list

3.更新源

sudo apt-get update

4.安裝源

sudo apt-get install -y mongodb-org

其中,如果想安裝一個特定的版本,必須指定每個元件單獨跟版本號,如下例子(可不看):

sudo apt-get install -y mongodb-org=4.0.1 mongodb-org-server=4.0.1 mongodb-org-shell=4.0.1 mongodb-org-mongos=4.0.1 mongodb-org-tools=4.0.1

5.配置啟動檔案
檢視 /lib.systemed/system/mongod.service 檔案
注意:請使用有許可權的使用者開啟,如在root下輸入命令,不然無許可權的使用者開啟后里面啥都沒.

vim /lib.systemed/system/mongod.service

mongod.service檔案中配置如下:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

6.啟動,重啟,關閉 mongodb:

sudo service mongod start
sudo service mongod restart
sudo service mongod stop

7.解除安裝 mongodb:

sudo service mongod stop
sudo apt-get purge mongodb-org*

8.刪除資料庫和日誌檔案

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

9.新增php的mongodb擴充套件

# pecl install mongodb
# echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

二 . 遠端連線雲伺服器

我的阿里雲伺服器:
CPU: 1核
記憶體: 2 GB
例項型別: I/O優化
作業系統: Ubuntu 16.04 64位

1.修改mongodb的配置檔案 /etc/mongod.conf,使得任何ip都可以訪問:
# 啟動mongodb,檢視埠繫結情況
service mongod start
# 檢視網路埠情況
netstat -tunlp

這是我已經配置好的:
這裡寫圖片描述
若你沒有配置過 ,會發現mongodb服務繫結中本地ip上: 127.0.0.1:27017,而不是我這樣的 0.0.0.0:27017

# 開啟mongodb配置檔案
vim /etc/mongod.conf

# 修改配置檔案:繫結到任何IP上
bindIp: 0.0.0.0
# 關閉認證 (這步我沒有做,因為我打的檔案中沒有這個auth)
auth = false
# 重啟mongodb
service mongod stop
service mongod start
# 檢視網路埠情況,發現mongodb服務已經繫結在任意ip上了: 0.0.0.0:27017 像我上圖一樣
netstat -tunlp
2.修改ECS 雲伺服器安全組規則,對外開放 27017 埠

(1) 安全組的配置:

這裡寫圖片描述

(2) 修改安全組規則:

這裡寫圖片描述

3. 在本地windows端,通過下面兩種方式進行連線:

1.使用windows的黑視窗cmd:
這裡寫圖片描述

2.使用 視覺化軟體MongoBooster (沒有安裝的可以下載安裝一個)
這裡寫圖片描述
這裡寫圖片描述

三 .報錯:xxx is not in the sudoers file.This incident will be reported.

  1. 切換到root使用者下
su root
  1. 編輯sudoers檔案
vim /etc/sudoers

找到 root ALL=(ALL) ALL,在他下面新增zyp ALL=(ALL) ALL (這裡的zyp 是我的使用者名稱)
你可以sudoers新增下面四行中任意一條 (最好不要都寫)
zyp ALL=(ALL) ALL
%zyp ALL=(ALL) ALL
zyp ALL=(ALL) NOPASSWD: ALL
%zyp ALL=(ALL) NOPASSWD: ALL

第一行:允許使用者zyp 執行sudo命令(需要輸入密碼).
第二行:允許使用者組zyp 裡面的使用者執行sudo命令(需要輸入密碼).
第三行:允許使用者zyp 執行sudo命令,並且在執行的時候不輸入密碼.
第四行:允許使用者組zyp 裡面的使用者執行sudo命令,並且在執行的時候不輸入密碼.

我使用的是:%zyp ALL=(ALL) ALL

這樣以後,你從root切換到普通使用者就可以使用sudo了.

參考:
1. https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#install-mongodb-community-edition-on-ubuntu
2. https://www.cnblogs.com/xiaochaoyxc/p/6206481.html
3. https://blog.csdn.net/zwq912318834/article/details/80570397