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了,暂时这样搞了。后面看看服务到底怎么设置。