原文是这篇文章


(mongodb不推荐root启动)但是考虑到小白只有一个root用户,还是root启动吧。。。

一、下载,解压

# 新建个文件夹
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-4.4.3.tgz
tar zxf mongodb-linux-x86_64-ubuntu2004-4.4.3.tgz
sudo mv mongodb-linux-x86_64-ubuntu2004-4.4.3.tgz/usr/local/mongodb

二、设置环境变量

sudo vim /etc/profile
# 在文件末尾添加一行export PATH=/usr/local/mongodb/bin:$PATH
source /etc/profile

三、添加配置文件内容

sudo vim /etc/mongod.conf

# mongod.conf的内容

#详细记录输出
verbose = true
#绑定IP
bind_ip = 0.0.0.0
#指定服务端口号
port = 27017
#指定日志文件,注意是指定文件不是目录
logpath = /var/log/mongodb/logs/mongodb.log
#使用追加方式写日志
logappend = true
#指定数据库路径
dbpath = /var/lib/mongodb/db
#设置每个数据库将被保存在一个单独的目录
directoryperdb = true
#启用验证(设置账号密码之后,这里要修改为true)
auth = false
#以守护进程的方式运行MongoDB,创建服务器进程
fork = true
#安静退出
quiet = true
# 最大使用内存(不加这个,mongodb会默认最多占一半内存)
wiredTigerCacheSizeGB=0.8

根据官方的推荐,data目录和log目录就不改了

sudo mkdir /var/lib/mongodb/db -p
sudo mkdir /var/log/mongodb/logs -p
sudo touch /var/log/mongodb/logs/mongodb.log
# 修改权限 有其他用户需求的,换一下就行
sudo chown root:root /var/lib/mongodb/db
sudo chown root:root /var/log/mongodb/logs/mongodb.log

测试是否安装成功

mongod -f /etc/mongod.conf

启动成功之后,设置开机启动

添加mongodb.service

cd /etc/systemd/system
sudo vim mongodb.service

# 内容如下,注意,下面有个大坑!个人安装了几个不同人推荐的版本,Type=forking这个很重要
# 否则容易出现运行一下子成功,然后又退出了
# 官方推荐的.service 里面就没有这个forking的选项

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
 
[Service]
# 注意这个地方是个坑,如果你的mongodb配置文件中设置的作为守护线程运行,下面这一行一定要加上
Type=forking
User=root
ExecStart=/usr/local/mongodb/bin/mongod -f /etc/mongod.conf
# 下面是官方推荐的加上去的东西,加上就好了
# Other directives omitted
# (file size)
LimitFSIZE=infinity
# (cpu time)
LimitCPU=infinity
# (virtual memory size)
LimitAS=infinity
# (locked-in-memory size)
LimitMEMLOCK=infinity
# (open files)
LimitNOFILE=64000
# (processes/threads)
LimitNPROC=64000
[Install]
WantedBy=multi-user.target

# 加权限 注意文件路径,还是cd过来的那个路径
sudo chmod +x mongodb.service

这里设置好用户好了

 进入mongo 环境

> use admin
#创建管理用户,root权限
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "root", db: "admin" } ]
}
)
#验证
db.auth("root", "123456")
#返回1则成功!

 

尝试用service启动

# 启动
star@for-vm:~$ sudo service mongodb start
# 查看状态,看到active(running)表示成功启动
star@for-vm:~$ sudo service mongodb status
● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; disabled; vendor preset: enabled)
   Active: active (running) since 六 2018-08-18 14:00:44 CST; 6s ago
  Process: 7727 ExecStart=/usr/local/mongodb/bin/mongod -f /etc/mongod.conf (code=exited, status=0/SUCCESS)
 Main PID: 7729 (mongod)
   CGroup: /system.slice/mongodb.service
           └─7729 /usr/local/mongodb/bin/mongod -f /etc/mongod.conf
 
8月 18 14:00:43 for-vm systemd[1]: Starting High-performance, schema-free document-oriented database...
8月 18 14:00:43 for-vm mongod[7727]: 2018-08-18T14:00:43.861+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
8月 18 14:00:43 for-vm mongod[7727]: about to fork child process, waiting until server is ready for connections.
8月 18 14:00:43 for-vm mongod[7727]: forked process: 7729
8月 18 14:00:44 for-vm systemd[1]: Started High-performance, schema-free document-oriented database.

设置开机启动

sudo systemctl enable mongodb

关闭开机启动

sudo systemctl disable mongodb

reboot以验证,通过!!

验证通过之后,将 mongod.conf里面的

auth=false 修改成

auth=true

并用root账户密码登录,就可以了。

如果本地可以登录的上,但是其他电脑远程访问不了,就查看自己的ip端口27017是否开启