我想使用 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 start同auth = true在的conf文件。我可能在初始安装/配置期间破坏了某些东西。
我的 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) 我正在尝试使用 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 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 都会终止进程并且不会重新启动。我不确定这些是否被 …
我正在设置我的数据库生产环境,我有一些问题。服务器有两个NVMe磁盘,但不能在硬件RAID控制器中使用。我需要带 NVMe 的 RAID 吗?
在生产中将它们用作JBOD就足够了吗?还是应该使用软件 RAID 1/0(这是 MongoDB 建议的 RAID)?否则,我必须卸下 NVMe 驱动器并订购要在 RAID 硬件控制器中使用的 SATA 接口。
我刚刚在全新的 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。
这可能很简单,但我没有想法,没有任何错误或反馈,很难知道问题可能出在哪里。任何帮助表示赞赏。
我的 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 以便在服务器重新启动后自动启动备份?这是在 CentOS 5.5 上。
我使用以下命令启动它,但是如果服务器重新启动,我必须登录到 SSH 并再次运行它才能让它继续运行(实际上没什么大不了的,但很高兴知道这不是必需的,如果我无权访问服务器)。
./mongod --config ./mongodb.config --fork --logpath /var/log/mongodb.log --logappend
我们希望在全球范围内建立数据中心并切换到像 MongoDB 这样的 NoSQL 数据库,以支持将我们的数据分布在这些数据中心上(并且作为一个令人愉快的副作用,引入更多的冗余、故障转移等)。
然而,全球数据中心的原因主要是为了加快附近国家用户的响应时间,而不是故障转移功能。Web 应用程序旨在用于公司规模,而这些公司中很少有人在全球范围内运营。因此,由于世界一侧的许多用户永远不需要访问另一侧用户的数据,如果数据可以保存在大多数用户本地的服务器上,那就太好了。
我曾希望我可以使用 mongodb 的分片功能让数据像这样分布到全球,同时仍然允许从一个位置访问和维护(这会很慢,并查询国际服务器)。不幸的是,我能找到的关于这种行为的唯一参考是在 MongoDB 博客上提到了“智能归位”,没有别的。虽然可以在全球范围内同步所有内容,但至少在其中一个国家/地区中,效率低下且未计量的带宽不是一种选择。
mongodb 可以支持这种行为吗?关于如何让这种设置工作的任何进一步信息(或者为什么我不应该让这个设置工作,因为它会使小猫死亡等)将不胜感激。
我正在考虑采用 Mongo 集群并正在进行研究。我们希望有一个集群,可以从每秒 10k 次更新扩展到每秒 100k 次更新,写入流量非常大。
主要问题是,如果我们想迁移到更新的版本,是否可以在不停机的情况下进行?
我们是否会一次升级一个分片/副本并让它重新加入该组并希望它向后兼容并且不会修改数据?
作为奖励,每秒 10k 更新的集群估计是多少?10万?
我查看了http://www.mongodb.org/display/DOCS/Sharding+FAQ但找不到升级程序。