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

Ubuntu 18.0.4安装Mongodb的更多相关文章

  1. Ubuntu 18.0.4安装docker

    第一步:如果之前安装过docker,执行下面命令删除 apt-get remove docker docker-engine docker.io 删除后执行sudo apt-get update更新软 ...

  2. 如何在Ubuntu 18.04上安装Pip

    一.简介: Pip是一个软件包管理系统,它简化了用Python编写的软件包(如Python包索引(PyPI)中的软件包)的安装和管理. 在Ubuntu 18.04上缺省没有安装Pip,但安装非常简单. ...

  3. Ubuntu 12.04上安装 MongoDB并运行

    Ubuntu 12.04上安装 MongoDB并运行 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在Terminal输入 sudo apt-key ...

  4. 如何在Ubuntu 18.04上安装Django

    Django是一个免费的开源高级Python Web框架,旨在帮助开发人员构建安全,可扩展和可维护的Web应用程序. 根据您的需要,有不同的方法来安装Django.它可以使用pip在系统范围内安装或在 ...

  5. 如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器(转)

    如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器 什么是Apache Web Server? Apache或Apache HTTP服务器是一个免费的开源Web服务器,由Apac ...

  6. 转:ubuntu 18.04 LTS 安装 java10(JDK) 及问题说明

    原文地址:ubuntu 18.04 LTS 安装 java10 及问题说明 1.下载相应的安装包,例如jdk-10.0.1_linux-x64_bin.tar.gz.下载地址: http://www. ...

  7. 在Ubuntu 18.04上安装Tensorflow

    我们将经历几个阶段,安装cuda-9.0,cudnn和tensorflow cpu以及tensorflow gpu版本.最后我们将用cuda-9.0安装pytorch.在MARVEl电影中黑寡妇的“我 ...

  8. Ubuntu 18.04上安装 phpMyAdmin

    我们将安装 phpMyAdmin 在 Ubuntu18.04 上配合 Apache 一起工作. 在安装 phpMyAdmin 之前需要已经安装了LAMP栈并提供了web页面. 如果没有安装可以参照 U ...

  9. Ubuntu 18.04上安装Apache, MySQL, PHP, LAMP

    1.安装 Apache $ sudo apt update && sudo apt install apache2 中间会遇到停顿询问是否继续, 输入 y 然后 回车. 2.测试 Ap ...

随机推荐

  1. JVM系列2:垃圾收集器与内存分配策略

    垃圾收集是一个很大话题,本文也只是看了深入理解Java虚拟机总结了下垃圾收集的知识. 首先按照惯例,先上思维导图: 垃圾收集简而言之就是JVM帮我们清理掉内存区域不需要的数据.它主要负责清理堆中实例对 ...

  2. pymysql 读取数据库没有字段

    import pymysql # 打开数据库连接db = pymysql.connect("localhost", "root", "root&quo ...

  3. python学习笔记(七)- 递归、python内置函数、random模块

    1.函数的不固定参数: #参数不是必填的.没有限制参数的个数.返回参数组的元组 def syz(*args): #参数组,不限制参数个数 #‘args’参数的名字可以随便命名 print(args) ...

  4. 8-13、Python 散列复习

    1.{} 输入是花括号 myCat = { 'size':'fat', 'color':'gray', 'disposition':'loud'}   键:值 myCat['size'] = fat ...

  5. node.js中使用zlib模块进行数据压缩和解压

    我们可以使用 zlib 模块来对数据进行压缩和解压处理,减小数据体积,加快传输速度. 一.通过创建转换流,对文件进行压缩和解压 const fs = require('fs'); const zlib ...

  6. autoMapper dotnetcore webapi 自动添加映射 abp

    在ef的xxxxApplicationModule的Initialize方法中,已经添加了自动映射的配置,如下图: 写的很明白了,我们只需要写一个类继承Profile就可以了.如下图所示: 这样就可以 ...

  7. 原生JS实现图片预览功能

    html代码: <div class="album-new fr"> <div class="upload-btn btn-new container& ...

  8. 安卓ViewStub用法

    安卓ViewStub用法 在开发应用程序的时候,经常会遇到这样的情况,在运行时动态根据条件来决定显示哪个View或某个布局. 那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为 ...

  9. java多线程系列9 高级同步工具(3) CyclicBarrier

    CyclicBarrier 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)   然后一再执行 public class CyclicBar ...

  10. flex布局之flex-basis采坑

    场景: 容器设置为display: flex,容器里的子项目部分设置 flex: auto,子项目的宽高自适应正常,但如果再往子项目里嵌套一个(如:div),并设置高度(如:height: 100%) ...