安裝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.
- 切換到root使用者下
su root
- 編輯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