标签: mongodb

如何:在弹性容器服务上 Dockerized MongoDB 复制

我有一个 Node.js 应用程序和一个在 AWS ECS 上运行的 MongoDB 数据库。我目前的设置由 2 个 ELB 和 2 个实例组成,每个实例运行一个 Docker 容器及其分配的服务(节点/mongo):

Elastic Load Balancer -> Dockerized Node -> Elastic Load Balancer -> Dockerized MongoDB
Run Code Online (Sandbox Code Playgroud)

我正在运行 MongoDB 的官方 Docker 映像:https : //registry.hub.docker.com/_/mongo/

关于如何使用 Docker 和 ECS 为 MongoDB 部署副本集的任何指示,每个副本都运行在不同的实例上?

amazon-web-services mongodb docker amazon-ecs

10
推荐指数
1
解决办法
4532
查看次数

运行没有 3GB 日志文件的 MongoDB 配置服务器

对于生产分片 MongoDB 安装,我们需要 3 个配置服务器。根据文档“配置服务器 mongod 进程相当轻量级,可以在执行其他工作的机器上运行”。但是,在默认配置中,它们都启用了日志记录,并且预分配会占用 3 GB 的磁盘空间。我假设配置服务器的实际数据和交易量非常小,所以这似乎有点太多了。

有没有办法(安全地!)以更少的磁盘使用日志来运行这些配置服务器?我是否需要在配置服务器上进行日志记录?我可以将期刊大小设置得更小吗?

replication sharding mongodb journalling

9
推荐指数
2
解决办法
1万
查看次数

pecl install mongo - 使用错误的模块 API 不断编译

在这里使用 Ubuntu 12.04、nginx 和 php5-fpm

我让 mongo 在 php 5.3 上运行良好,然后我添加了 ondrej/php5 ppa 并更新到 php5.4。它保留了 GD 和 CURL 扩展,但不保留 mongo。我将该行重新添加到 php.ini 文件中,但什么也没添加。然后我启用了启动错误并得到了这个:

PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' - /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以,疯狂的猜测,我做了find -name 'mongo.so'并将文件从 20090626/ 移动到 20100525/ ...这导致了这个错误:

PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match
Run Code Online (Sandbox Code Playgroud)

然后我做了pecl uninstall mongopecl install …

php5 pecl php-fpm mongodb

9
推荐指数
1
解决办法
8698
查看次数

为什么我不能在 Ubuntu 14.04 32 位上安装 mongodb 3.0?

我遵循了此处列出的所有官方指令:

官方网站

详细地说,我做了:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Run Code Online (Sandbox Code Playgroud)

(看起来没问题)

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
Run Code Online (Sandbox Code Playgroud)

(似乎没问题,因为文件 /etc/apt/sources.list.d/mongodb-org-3.0.list 是使用正确的条目创建的)

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

(似乎没问题,因为我在列表中看到了回购)

但是当我这样做时:

sudo apt-get install -y mongodb-org
Run Code Online (Sandbox Code Playgroud)

它总是说“找不到包 mongodb-org”。

如果我做:

sudo apt-get install -y mongodb
Run Code Online (Sandbox Code Playgroud)

它可以工作,但它不安装 3.0 版,而是安装 2.4 版

在删除/清除 2.4 版本后,我多次尝试安装 3.0,但结果相同:“找不到包 mongodb-org”

如何安装 3.0 版?

编辑

apt-cache search mongodb没有找到任何关于mongodb-org 的信息

这是/etc/apt/sources.list.d/mongodb-org-3.0.list的内容:

deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse
Run Code Online (Sandbox Code Playgroud)

这些是关于 mondodb 的apt-get update产生的行:

Ign http://repo.mongodb.org trusty/mongodb-org/3.0 InRelease
Trovato …
Run Code Online (Sandbox Code Playgroud)

ubuntu installation mongodb apt

9
推荐指数
1
解决办法
1万
查看次数

无法在 docker 中连接到 MongoDB

使用mongo来自 docker hub的官方镜像,我运行以下命令使其运行:

docker run --name api -p 127.0.0.1:27017:27017 -p 127.0.0.1:28017:28017 -d mongo
Run Code Online (Sandbox Code Playgroud)

然后从另一个终端外壳,我运行 mongo

但是,我不断收到以下错误:

MongoDB shell version: 3.2.3
connecting to: test
2016-02-18T13:52:08.110-0700 I NETWORK  [thread1] Socket recv() errno:104 Connection reset by peer 127.0.0.1:27017
2016-02-18T13:52:08.110-0700 I NETWORK  [thread1] SocketException: remote: (NONE):0 error: 9001 socket exception [RECV_ERROR] server [127.0.0.1:27017] 
2016-02-18T13:52:08.110-0700 E QUERY    [thread1] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:27017'  :
connect@src/mongo/shell/mongo.js:224:14
@(connect):1:6

exception: connect failed
Run Code Online (Sandbox Code Playgroud)

我检查了容器的日志,一切似乎都正确:

2016-02-18T20:51:20.538+0000 I CONTROL  [initandlisten] MongoDB starting …
Run Code Online (Sandbox Code Playgroud)

mongodb docker

9
推荐指数
2
解决办法
5万
查看次数

无法在 Debian 延伸上安装 MongoDB 3.4

我将 mongodb repo 添加到源列表:

deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main
Run Code Online (Sandbox Code Playgroud)

然后 apt-get update

当我尝试安装时,mongodb-org我得到了这个:

root@ns:~# aptitude install mongodb-org
The following NEW packages will be installed:
  mongodb-org mongodb-org-mongos{ab} mongodb-org-server{ab} mongodb-org-shell{ab} mongodb-org-tools{ab} 
0 packages upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 66.7 MB of archives. After unpacking 269 MB will be used.
The following packages have unmet dependencies:
 mongodb-org-mongos : Depends: libssl1.0.0 (>= 1.0.1) which is a virtual package and is not provided by …
Run Code Online (Sandbox Code Playgroud)

mongodb debian-stretch

9
推荐指数
1
解决办法
1万
查看次数

Mongo 日志中的 SocketException

到目前为止,我们已经运行 mongo 4 个月了,但最近我看到了很多

SocketException handling request, closing client connection: 9001 socket exception [2] server [127.0.0.1:58996]

我怎么知道这个错误的原因?是否与代码问题或管理员配置有关?

我们有 Fedora 16 服务器,mongo 版本 2.0.7

mongodb

8
推荐指数
1
解决办法
3万
查看次数

如何为mongod设置ulimit?

如何mongod在 CentOS 上为进程/用户设置 ulimit ?

我已经阅读了官方文档,但它没有提供特定于操作系统的说明。

  • 我需要设置ulimit -u 64000并需要它在重启后保持不变。

  • 我正在运行 CentOS 5.5,但很快就会升级到 6.5。

  • 我不想修改包管理器安装的任何脚本

centos ulimit mongodb

8
推荐指数
3
解决办法
2万
查看次数

在 Docker 中为 MongoDB 创建一个新用户

我正在使用默认的 MongoDB Docker 映像,并且正在尝试为数据库创建一个新用户。

我目前正在尝试这样做:

FROM docker.io/mongo:3.2

MAINTAINER <alexandernst> alexandernst@gmail.com

ADD create_ddbb.js /tmp/

RUN mongod --fork --logpath /var/log/mongodb.log \
    && sleep 5 && mongo foobar /tmp/create_ddbb.js 
Run Code Online (Sandbox Code Playgroud)

create_ddbb.js

db.createUser(
    {
      user: "*******",
      pwd: "*******************",
      roles: [
         { role: "readWrite", db: "foobar" }
      ]
    }
);
Run Code Online (Sandbox Code Playgroud)

当我构建 Dockerfile 时,我看到:

Step 4 : RUN mongod --fork --logpath /var/log/mongodb.log       && sleep 5 && mongo foobar /tmp/create_ddbb.js
 ---> Running in 58ba44d02508
about to fork child process, waiting until server is ready for connections. …
Run Code Online (Sandbox Code Playgroud)

mongodb docker

8
推荐指数
1
解决办法
1万
查看次数

如何正确配置 MongoDB 以在 Ubuntu 上使用 Letsencrypt SSL

如何正确配置 MongoDB 以在 Ubuntu 上使用 Letsencrypt SSL?

我使用 Letsencrypt 创建了一个 SSL 证书并通过以下方式将其组合:

cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/ssl/mongo.pem
Run Code Online (Sandbox Code Playgroud)

并设置 mongo 配置,如:

net:
  port: 27017
  bindIp: 0.0.0.0
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongo.pem
Run Code Online (Sandbox Code Playgroud)

但是在尝试启动 Mongo 时出现此错误:

No SSL certificate validation can be performed since no CA file has been provided; please specify an sslCAFile parameter
Run Code Online (Sandbox Code Playgroud)

如何正确设置 CAFile?Ubuntu 通常不会在自己的文件中使用带有一堆不同根证书的“CA 路径”吗?我尝试使用 CURL CA 包,但这也不起作用。

我使用的是 Mongo v3.0.12 和 Ubuntu 14.04

ubuntu ssl tls mongodb ubuntu-14.04

8
推荐指数
2
解决办法
4667
查看次数