Ubuntu 18.0.4安装Mongodb

2.21更新:

安装后本地通过robo 3T连接正常,但是其它机器通过IP连接时报错,继续查找,解决方案在这里(传送门),原因是mongodb安装完成后默认监听本地地址,也就是127.0.0.1,这样只能通过localhost或127.0.0.1连接,通过其它IP就不行了,改下配置文件即可。在/etc目录下的mongod.conf文件中,修改bindIp为0.0.0.0,如下:

这样就能通过本机IP连接了。

1.28更新:

事实证明,前面完全错了,根本没找到问题所在乱解决,根据前面的安装虽然能用,但是装的是Ubuntu提供的mongo包,官网(传送门)上说的很清楚,非官方提供,不提供支持,并且装的是3.6.3而不是4.0.5,真是被自己蠢哭!

最后我根据官网上的安装说明装的,装完后使用

sudo service mongod start

这时去监控/var/log/mongodb.log下面的日志,发现其实报错了

提示/var/lib/mongodb是只读的,现在尝试写,不允许,最初搜资料说给这个文件夹设置写权限,我用777设置了,不行,于是按他们说的第二种方法,把这个文件夹的用户更改为当前用户loki,依然不行,最后发现

这个文件夹拥有者所在的组是mongodb,之前好像看过说服务启动时是以mongodb用户启动的,于是

sudo chown -R mongodb mongodb

把文件夹拥有者改为mongodb,再次启动mongod服务,成功!

为什么会出现这个问题呢?还不确定,不知道 是不是因为之前安装时留下的坑,后面我再在一台新的虚拟机上装下试试,但是前面安装问题很大,没找到根本原因就直接瞎解决,最终啥也没解决,这一点需要好好反思!

1.28下午更新:

在新的虚拟机上又安装了一遍,根据官方的步骤安装一切正常,所以上面的权限问题应该是之前安装留下的坑。

 1.23安装记录

我是用的安装包安装的,下载地址:https://www.mongodb.com/download-center/community

选择Server后再选择Ubtuntu 18.04 64bit即可,安装不提,很简单。

安装完成后并不能用,首先在终端输入mongo命令时提示要安装mongo-client,于是执行如下命令安装:

sudo apt install mongodb-clients

安装完后再输入mongo命令,发现可以连了,正要开心,却发现提示无法连接到服务器- -

大概提示是connect refused,搜资料,在这里发现说是服务器没起来,链接如下:大佬1

于是执行mongod命令,却发现启动不起来,继续看上面的链接,发现是要指定数据库的路径,于是执行如下命令:

mongod -dbpath "/var/lib/mongodb/"

原以为能正常启动,却发现太天真,提示还要装一个server-core,于是装:

sudo apt install mongodb-server-core

再次执行mongod命令,服务终于正常启动,再打开一个终端输入mongo也能连了,但是跟上面链接说的一样,服务窗口不能关啊,一关服务就停了,这很坑啊

我先是尝试把服务配成系统服务,让它后台运行,于是执行下面命令:

sudo systemctl enable mongod.service

却提示找不到这个文件:Unit file mongod.service does not exist

于是我根据这个链接:大佬2

在/etc/systemd/system下新建了一个mongod.service文件,内容如下:

[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

之后将mongod设置为系统服务,

sudo systemctl enable mongod
sudo systemctl daemon-reload
sudo service mongod start

没报错,好像是设置成功了,但是执行mongo命令依然连接不上,没办法,只好使用上面大佬1的方法了,把mongod服务设置成后台运行,命令如下:

mongod -fork -f /etc/mongod.conf

这样窗口关掉也能连接mondodb了,暂时这样搞了。后面看看服务到底怎么设置。

原文地址:https://www.cnblogs.com/daner1257/p/10310879.html