我在 mac 上运行这些简单的命令:
brew upgrade mongodb
Run Code Online (Sandbox Code Playgroud)
或者
brew install mongodb
Run Code Online (Sandbox Code Playgroud)
我在下面收到此错误:
错误:mongodb:未知版本:mountain_lion
如果我运行简单的命令: mongo ,我会得到这个
MongoDB shell 版本 v4.0.3
但是后来我收到一条错误消息,说无法连接到服务器
- 值得注意的是,昨晚我在玩命令行,不知何故从我机器上的 mongodb 中删除了我的所有数据库(我认为)。尝试安装和/或更新 mongodb 时,我不断收到上述错误。
我是 mongoDB 的“新手”,但在过去的 5-6 个月里,我已经使用它创建了一些完整的堆栈项目。不确定我做了什么,但我也无法运行 node db/seeds.js,因为我收到错误,即使我的 vscode 项目中有数据。
谢谢您的帮助。
我正在尝试在 Ubuntu 12 上安装 Mongodb,但是当我运行此命令时:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
返回以下错误:
找不到 keyserver.ubuntu.com 主机
gpgkeys:HTTP 获取错误 7:无法连接:没有这样的文件或目录
gpg:找不到有效的 openPGP 数据
gpg:进程总数:0
我在 Iptables 上关闭了防火墙,但它不起作用。有什么想法吗?
要从 NodeJS 应用程序连接到 MongoDB 数据库,文档说要连接这样的地址:
mongodb://localhost:27017/myproject
mongodb协议在哪里,代替http(或https)。
我很好奇这是如何工作的。
当我打开浏览器时,无法导航到此页面,也无法通过 Postman 向其发送请求。
这个协议是如何工作的?我如何手动与它交互?我在哪里可以找到有关它的更多信息?
我正在尝试在运行 Mountain Lion (10.8.3) 的本地 Mac 上安装10gen 版本的 MongoDB:
我curl在以下位置获取它:
curl http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.tgz > mongodb.tgz
Run Code Online (Sandbox Code Playgroud)
但我无法提取构建:
尝试 1:
$ tar -zxvf mongodb.tgz
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
Run Code Online (Sandbox Code Playgroud)
尝试 2:
$ gunzip mongodb.tgz
gzip: mongodb.tgz: not in gzip format
Run Code Online (Sandbox Code Playgroud)
尝试 3:
$ unzip mongodb.tgz
Archive: mongodb.tgz
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central …Run Code Online (Sandbox Code Playgroud) 我有一个使用大约 1GB 空间的 mongodb 数据库。当我的服务器空间不足时,我感到很惊讶,然后我意识到该日志使用了 3GB。
该文件指出,“一旦MongoDB中的日志文件适用于所有的写操作时,将删除这些文件”,但是,这并不似乎是如此,因为数据库同步和日记是不是整个数据库的大3倍。
如何删除这些日志文件并配置系统以使用更少的空间?
我已经通过自制软件安装了 mongodb 2.4:
brew install homebrew/versions/mongodb24
Run Code Online (Sandbox Code Playgroud)
然后我制作了一个指向自制软件提供的配置的 simlink:
ln -sfv /usr/local/opt/mongodb24/homebrew.mxcl.mongodb24.plist ~/Library/LaunchAgents
Run Code Online (Sandbox Code Playgroud)
该文件包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.mongodb24</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/mongodb24/bin/mongod</string>
<string>--config</string>
<string>/usr/local/etc/mongod.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>WorkingDirectory</key>
<string>/usr/local</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
<key>StandardOutPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
<key>HardResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>1024</integer>
</dict>
<key>SoftResourceLimits</key>
<dict>
<key>NumberOfFiles</key>
<integer>1024</integer>
</dict>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试启动它并出现错误:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb24.plist
/usr/local/Cellar/mongodb24/2.4.12/homebrew.mxcl.mongodb24.plist: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
好像权限有问题。但我不确定。我该如何解决?
我正在运行一个简单的开发服务器 (Ubuntu),MySQL 和 MongoDB 有时会在该服务器上崩溃。我总是用sudo service mysql restart.
尽管我知道我需要调查它们崩溃的原因——我会——但我目前正在寻找一种在它们崩溃后自动重启它们的方法。我想我需要某种守护进程来 ping 它们并在它们不再响应时重新启动它们,但我不确定如何执行此操作。
我读过像Nagios这样的工具,但我想这对我的情况来说有点矫枉过正。
有人知道我该如何开始吗?
好吧,我发现了一个奇怪的情况。我一直在一个项目中同时使用 PHP 和 MongoDB,并更新了相关软件。升级后,我确实确保更新了新的 conf 文件,一切都很好 --- 除了当我尝试使用MongoClient该类时,我收到以下致命错误:
致命错误:未捕获的错误:在 /srv/http/test.php 中找不到类“MongoClient”
所以我的第一直觉是检查我的/etc/php/php.ini以确保 mongodb.so 被正确包含。我在其他extension行之后找到了它:
extension=mcrypt.so
extension=zip.so
extension=mongodb.so ; <--- here it is
Run Code Online (Sandbox Code Playgroud)
选中后,我加载了一个快速phpinfo()脚本来检查我是否使用了正确的php.ini文件,并确认我使用的是正确的文件。不仅如此,mongodb 驱动程序似乎也正确加载了!
Loaded Configuration File /etc/php/php.ini
mongodb support enabled
mongodb version 1.1.1
mongodb stability stable
libmongoc version 1.3.1-dev
libbson version 1.3.0
Run Code Online (Sandbox Code Playgroud)
所以我重新启动了 httpd 并再次尝试。没有骰子,还是找不到MongoClient班级。所以我尝试从pecl我的发行版的包管理器而不是安装它,情况和上面描述的一样。
所以这里是情况的简要概述:
phpinfo(). …我按照本教程创建了一个根 CA 证书,然后使用它为 mongod 服务器签名。我使用此配置运行monogd,遵循此文档:
net:
ssl:
mode: requireSSL
PEMKeyFile: /home/user/device.pem
CAFile: /home/user/rootCA.pem
allowInvalidCertificates: true
allowInvalidHostnames: true
Run Code Online (Sandbox Code Playgroud)
由于连接失败,我添加的最后 2 个。
我正在使用这些线路连接:
./mongo <host>:<port>/<db> -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates --sslCAFile ~/Downloads/rootCA.pem
./mongo <host>:<port>/<db> -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates
./mongo <host>:<port>/<db> -u <user> -p <pwd> --ssl
Run Code Online (Sandbox Code Playgroud)
但所有这些都会产生:
MongoDB shell version v3.4.2
connecting to: mongodb://<host>:<port>/<db>
2017-03-30T14:39:15.307+0300 E NETWORK [thread1] SSL peer certificate validation failed: self signed certificate
2017-03-30T14:39:15.311+0300 E QUERY [thread1] Error: socket exception [CONNECT_ERROR] for SSL …Run Code Online (Sandbox Code Playgroud) 我需要帮助解决优雅关闭 mongod 的问题。我在 docker 上运行 mongodb 。
我像使用命令一样运行 mongod:
mongod --config /etc/mongod.conf
当我关闭时:
mongod --关闭
我收到消息:
似乎没有使用 dbpath 运行的服务器:/data/db
该消息为 true ,因为我的数据库路径不是 "/data/db" 。
如果我尝试将其关闭,例如:
mongod --config /etc/mongod.conf --shutdown
我收到消息:
使用 pid 杀死进程:9
问题是什么 ??
mongodb ×10
linux ×4
macos ×3
homebrew ×2
command-line ×1
gzip ×1
http ×1
journaling ×1
kill ×1
monitoring ×1
mysql ×1
node.js ×1
openssl ×1
php ×1
public-key ×1
shutdown ×1
ssl ×1
tar ×1
ubuntu ×1