标签: mongodb

如何启动具有身份验证支持的 Mongo 守护进程

我想使用 Mongo init 脚本启动具有 auth 支持的 MongoDB 守护进程:

sudo /etc/init.d/mongod start
Run Code Online (Sandbox Code Playgroud)

我还将 db 用户添加到数据库中以进行身份​​验证。我正在处理两个文件:(/etc/init.d/mongod用于初始化)和/etc/mongod.conf(用于配置)。

#mongod.conf:
dbpath=/var/lib/mongodb
logappend=true
port = 27017 
auth = true
Run Code Online (Sandbox Code Playgroud)

非守护进程方法使用以下--auth标志正确启动进程:

mongod --auth
Run Code Online (Sandbox Code Playgroud)

fork 可以工作,但这不使用 init 脚本:

mongod --fork --auth --logpath /var/log/mongod.log
Run Code Online (Sandbox Code Playgroud)

阅读所有文档和相关帖子,似乎没有人有一个可行的解决方案来获得身份验证支持

service mongod start
Run Code Online (Sandbox Code Playgroud)

链接:

更新:我重新安装的Debian /蒙戈,并能使用service mongod startauth = true在的conf文件。我可能在初始安装/配置期间破坏了某些东西。

daemon authentication mongodb

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

mongod:符号查找错误:mongod:未定义符号:_ZN5boost6detail13once_epoch_cvE

我的 mongodb 安装有问题:当我运行 sudo mongod 时,我得到 mongod: symbol lookup error: mongod: undefined symbol: _ZN5boost6detail13once_epoch_cvE

uname -a
Linux xyz 3.2.0-4-686-pae #1 SMP Debian 3.2.65-1+deb7u2 i686 GNU/Linux

which mongod
/usr/bin/mongod

ldd /usr/bin/mongod
    linux-gate.so.1 =>  (0xb76e7000)
    libpcrecpp.so.0 => /usr/lib/i386-linux-gnu/libpcrecpp.so.0 (0xb76b9000)
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb767b000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb758e000)
    libboost_system.so.1.49.0 => /usr/lib/libboost_system.so.1.49.0 (0xb758a000)
    libboost_thread.so.1.49.0 => /usr/lib/libboost_thread.so.1.49.0 (0xb7565000)
    libboost_filesystem.so.1.49.0 => /usr/lib/libboost_filesystem.so.1.49.0 (0xb7546000)
    libboost_program_options.so.1.49.0 => /usr/lib/libboost_program_options.so.1.49.0 (0xb74de000)
    libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb74b7000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb749a000)
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb7481000)
    libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb731d000)
    /lib/ld-linux.so.2 (0xb76e8000)
    librt.so.1 …
Run Code Online (Sandbox Code Playgroud)

debian libboost mongodb

6
推荐指数
1
解决办法
1871
查看次数

Mongodb 安装在 Ubuntu 14.04 docker 容器中失败

我正在尝试使用 Dockerfile 中官方 mongodb 指南中的以下步骤在 docker 容器中的 ubuntu 14.04 上安装 mongodb:

RUN sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
RUN 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 apt-get update && apt-get -q -y install \
    nodejs\
    npm \
    git \
    mongodb-org
Run Code Online (Sandbox Code Playgroud)

这些命令在我的主机 ubuntu 系统上正确安装 mongodb,但不在 docker 中。在我的 docker 镜像中, /etc/init.d/mongod 不存在。运行“docker build”时打印以下错误:

invoke-rc.d: unknown initscript, /etc/init.d/mongod not found.
invoke-rc.d: policy-rc.d denied execution of start.
Run Code Online (Sandbox Code Playgroud)

mongodb docker ubuntu-14.04

6
推荐指数
1
解决办法
4124
查看次数

为什么MongoDB不会自动重启?

如果 MongoDB 3.6 崩溃,它似乎不会自动配置为重新启动。查看与 Ubuntu 16.04LTS 的最新 .deb 包捆绑在一起的 systemd 服务,它似乎没有配置重启:

$ sudo systemctl cat mongod
# /lib/systemd/system/mongod.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

发送 SIGKILL 和 SIGSEGV 都会终止进程并且不会重新启动。我不确定这些是否被 …

ubuntu mongodb systemd

6
推荐指数
1
解决办法
3459
查看次数

生产中 NVMe 上的 MongoDB

我正在设置我的数据库生产环境,我有一些问题。服务器有两个NVMe磁盘,但不能在硬件RAID控制器中使用。我需要带 NVMe 的 RAID 吗?

在生产中将它们用作JBOD就足够了吗?还是应该使用软件 RAID 1/0(这是 MongoDB 建议的 RAID)?否则,我必须卸下 NVMe 驱动器并订购要在 RAID 硬件控制器中使用的 SATA 接口。

raid mongodb nvme

6
推荐指数
1
解决办法
545
查看次数

无法在 Ubuntu 10.10 上启动 MongoDB

我刚刚在全新的 Ubuntu 10.10 安装上安装了 MongoDB,但我无法启动它(根本无法启动)。我正在使用最新的mongo-stable包通过。http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages

我希望它在启动时自动启动,但是尝试手动启动它总是给我以下信息:

$ sudo start mongodb
mongodb start/running, process 2565
$ sudo status mongodb
mongodb stop/waiting
Run Code Online (Sandbox Code Playgroud)

ps -aux没有显示任何与 mongo 相关的内容。尝试运行 shell 给了我:

MongoDB shell version: 1.6.3
connecting to: test
Tue Oct 12 22:33:14 Error: couldn't connect to server 127.0.0.1 (anon):1137
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

/var/log/mongodb 和 /var/lib/mongodb 都存在并且可能是由安装程序创建的。两者都归 mongodb 用户所有(再次由安装程序设置),但两者都是空的,所以没有 mongo 日志文件供我检查,也没有 .lock 文件供我删除。

如果是权限相关,两者都是

drwxr-xr-x  2 mongodb       mongodb       4096 2010-10-12 22:08 mongodb
Run Code Online (Sandbox Code Playgroud)

/var/log/messages 或 syslog 中没有相关的日志条目。我试过重新安装软件包,以防万一,但没有区别。我正在运行的版本列为 20100930。

这可能很简单,但我没有想法,没有任何错误或反馈,很难知道问题可能出在哪里。任何帮助表示赞赏。

ubuntu mongodb

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

移动块时MongoDB套接字异常

我的 mongodb 数据库集群中有 2 个分片,有 1 个 mongos 服务器。我总共有 8 个服务器,其中一个副本集有 5 个,另一个有 3 个。我有一个跨集群分片的集合,但是最近当我尝试块移动时,我收到了套接字异常。

所有服务器都在 EC2 上运行,其中大部分位于同一可用区。发送服务器和接收服务器位于不同的可用区。

以下是日志的一些摘录:

发送服务器:

5 月 20 日星期五 07:53:28 [conn6158] moveChunk 数据传输进度:{ active: false, ns: "social_advantage_analytics.edges", from: "slytherin/draco:27018", min: { _id: "100000007993 max2109_4,16" : { _id: "100000012316922_167580256615048" }, state: "fail", errmsg: "socket exception", counts: { cloned: 0, clonedBytes: 0, catchup: 0, stable: 0 }, ok: used: 0 } 0

5 月 20 日星期五 07:53:28 [conn6158] 警告:传输数据时 moveChunk 错误导致迁移中止:{ active: false, ns: "social_advantage_analytics.edges", from: "slytherin/draco:27018", …

mongodb

5
推荐指数
1
解决办法
1648
查看次数

如何在 CentOS 重启时自动启动 MongoDB?

如何设置 MongoDB 以便在服务器重新启动后自动启动备份?这是在 CentOS 5.5 上。

我使用以下命令启动它,但是如果服务器重新启动,我必须登录到 SSH 并再次运行它才能让它继续运行(实际上没什么大不了的,但很高兴知道这不是必需的,如果我无权访问服务器)。

./mongod --config ./mongodb.config --fork --logpath /var/log/mongodb.log --logappend

automation linux centos centos5 mongodb

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

使用基于位置存储的数据在国际上对 MongoDB 进行分片

我们希望在全球范围内建立数据中心并切换到像 MongoDB 这样的 NoSQL 数据库,以支持将我们的数据分布在这些数据中心上(并且作为一个令人愉快的副作用,引入更多的冗余、故障转移等)。

然而,全球数据中心的原因主要是为了加快附近国家用户的响应时间,而不是故障转移功能。Web 应用程序旨在用于公司规模,而这些公司中很少有人在全球范围内运营。因此,由于世界一侧的许多用户永远不需要访问另一侧用户的数据,如果数据可以保存在大多数用户本地的服务器上,那就太好了。

我曾希望我可以使用 mongodb 的分片功能让数据像这样分布到全球,同时仍然允许从一个位置访问和维护(这会很慢,并查询国际服务器)。不幸的是,我能找到的关于这种行为的唯一参考是在 MongoDB 博客上提到了“智能归位”,没有别的。虽然可以在全球范围内同步所有内容,但至少在其中一个国家/地区中,效率低下且未计量的带宽不是一种选择。

mongodb 可以支持这种行为吗?关于如何让这种设置工作的任何进一步信息(或者为什么我不应该让这个设置工作,因为它会使小猫死亡等)将不胜感激。

scaling mongodb

5
推荐指数
1
解决办法
581
查看次数

升级 mongo 集群

我正在考虑采用 Mongo 集群并正在进行研究。我们希望有一个集群,可以从每秒 10k 次更新扩展到每秒 100k 次更新,写入流量非常大。

主要问题是,如果我们想迁移到更新的版本,是否可以在不停机的情况下进行?

我们是否会一次升级一个分片/副本并让它重新加入该组并希望它向后兼容并且不会修改数据?

作为奖励,每秒 10k 更新的集群估计是多少?10万?

我查看了http://www.mongodb.org/display/DOCS/Sharding+FAQ但找不到升级程序。

sharding mongodb

5
推荐指数
1
解决办法
375
查看次数