今天突然想在自己的笔记本和服务器上装MongoDB,遇到一些坑。
Windows:安装在c盘以外就报错,无论是data、log、还是mongo程序。只要一直点下一步啥事没有,我表示很无语。
Ubuntu : 这个安装就比较坑了,我首先参照的是崔庆才大神的博客,前面一直没什么问题,这里不知道为什么,运行了
sudo apt-get install -y mongodb-org
之后,输入mongo报错,但我再输入
sudo apt-get install mongodb
的时候并没有显示已安装,而是正在安装,然后就输入mongo进入了。修改配置文件之后,输入
sudo service mongod restart
重启MongoDB服务的时候报
Failed to restart mongod.service: Unit mongod.service not found.
这样一个错误。百度了一下,解决方法网站。
大概意思是MongoDB站点上的说明/包目前仅适用于LTS Ubuntu 12.04和14.04。我是服务器使用的是Ubuntu16。
解决方法:
sudo vi /etc/systemd/system/mongodb.service
(原文是使用nano,不过我只会vi,你如果会nano的话,可以换)
写入下面这些内容
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
分别输入下面的两个命令可以启动服务并检查其状态
sudo systemctl start mongodb
sudo systemctl status mongodb
运行命令这里如果提示的话可以根据提示操作,因为你修改了配置,所以他会问你是否重新加载配置。
systemctl daemon-reload
不过因为我安装的时候mongo已经开启,所以我需要重启
sudo systemctl restart mongodb
重启居然是
sudo systemctl reload mongod
不过我上面的也成功了。
到这一步笔记本已经可以连接服务器的MongoDB了
这是永久启用mongodb服务(一般需要这样)
sudo systemctl enable mongodb
但我运行这一个命令时报这个错误:
Synchronizing state of mongodb.service with SysV init with /lib/systemd/systemd-sysv-install…
Executing /lib/systemd/systemd-sysv-install enable mongodb
Failed to execute operation: File exists
我只看懂了文件存在,所以我将上面那个文件改名,又报文件不存在的错误,到底是要存在还是不存在呢,算了,服务器关机了还是手动运行吧。
测试了两台Ubuntu服务器,两台服务器都是这样(买的腾讯云的学生机,有兴趣的可以百度一下,10块钱一个月)。