19

我正在学习 mongoDb。
我做了以下事情:我明白这一点。

mkdir -p mongodb
cp -R -n mongodb-osx-x86_64-2.6.7/ mongodb

这些下一个**说明对我来说不是很清楚。

** 确保二进制文件的位置在 PATH 变量中。MongoDB 二进制文件位于归档的 bin/ 目录中。要确保二进制文件在您的 PATH 中,您可以修改您的 PATH。

例如,您可以将以下行添加到您的 shell 的 rc 文件(例如 ~/.bashrc)中:

export PATH=<mongodb-install-directory>/bin:$PATH

替换为提取的 MongoDB 存档的路径。

指令结束。

从我 Mac 上的终端

$which bash
/bin/bash

bin 目录有一堆命令:bash、chmod、ln、pid、mkdir。

我找不到应该包含上述 PATH 代码的目录。

谢谢

Abhay 的指示奏效了!对不起,下面的内容很长,但我认为这是必要的,因为你上次说的很清楚,我想让你看看我的文件结构。
如果电子邮件更容易让我知道,但这很可能对其他人没有帮助:) 我真的很想了解我的文件结构,所以如果你不介意进一步澄清的话。再次感谢您的专业知识。

1. 但是为什么所有的二进制文件(可执行文件)都单独列在这个 bin 文件夹中?它们是应该“存在”在此文件夹中的“唯一”文件吗?也许当我安装 bower grunt 等时,我应该将那些(bower grunt 等)安装到不同的位置。我试图保持我的文件结构合乎逻辑和干净。这就是我所拥有的。

MacBookPro:usr regina$ cd ..
MacBookPro:/ regina$ ls
Applications        bin         net
CoreSyncInstall.log cores           private
Library         data            sbin
Network         dev         tmp
System          etc         usr
Users           home            var
Volumes         mach_kernel
MacBookPro:/ regina$ cd usr/local/bin
MacBookPro:bin regina$ ls
bower       grunt       mongod      mongorestore    npm
browserify  gulp        mongodump   mongos      statsd
bsondump    http-server mongoexport mongosniff  yo
cake        karma       mongofiles  mongostat
coffee      lessc       mongoimport mongotop
cordova     mkdirp      mongooplog  node
express     mongo       mongoperf   nodemon
MacBookPro:bin regina$ 

2. 另外,我想看看我的 .bashrc 文件。我一个也没有。我在 osx 10.8.5 我想“查看”我的 $PATH 变量。我相信我几个月前在某个地方找到了它。我正在使用 nano 打开一堆文件,因为我很好奇。它被列为环境变量吗?

MacBookPro:/ regina$ ls
Applications        bin         net
CoreSyncInstall.log cores           private
Library         data            sbin
Network         dev         tmp
System          etc         usr
Users           home            var
Volumes         mach_kernel
MacBookPro:/ regina$ cd home
MacBookPro:home regina$ ls -la
total 2
dr-xr-xr-x   2 root  wheel     1 Feb  3 08:29 .
drwxr-xr-x  33 root  wheel  1190 Jan 25 17:21 ..
MacBookPro:home regina$ 
  1. 我像这样启动 mongo shell。我没有显示终端中输出的所有行。
    看看我的文件结构。我最初遵循了一个 cp 命令,但它没有解释复制存档(桌面)mongodb-osx-x84....文件夹的“位置”,所以看看我将它复制到哪里。现在我在 2 个位置有这些文件 - 是吗?我在更高级别的 mongodb 文件夹中有一个 mongodb 文件夹。为什么 ?我是怎么做到的?这似乎不合逻辑。我已经缩进了 4 个空格,但下面不会格式化,所以我只是添加了换行符。对不起。

    MacBookPro:home regina$ cd ..

    MacBookPro:/ regina$ ls Applications bin net CoreSyncInstall.log cores private Library data sbin Network dev tmp System etc usr Users home var Volumes mach_kernel

    MacBookPro:/ regina$ cd 数据

    MacBookPro:data regina$ ls

    数据库 mongodb

    MacBookPro:data regina$ cd mongodb

    MacBookPro:mongodb regina$ ls

    mongodb MacBookPro:mongodb regina$ cd mongodb MacBookPro:mongodb regina$ ls GNU-AGPL-3.0 THIRD-PARTY-NOTICES README bin

    MacBookPro:mongodb regina$ cd bin

    MacBookPro:bin regina$ ls

    bsondump mongodump mongoimport mongorestore mongostat mongo mongoexport mongooplog mongos mongotop mongod mongofiles mongoperf mongosniff

  2. 当我按照另一个论坛的建议尝试输入“mongo”时,就会发生这种情况。

    MacBookPro:bin regina$ mongo MongoDB shell 版本:2.6.7 连接到:测试 2015-02-03T08:36:54.157-0500 警告:无法连接到 127.0.0.1:27017,原因:errno:61 连接被拒绝

所以我输入了这个仍然失败。

MacBookPro:bin regina$ ./mongo
MongoDB shell version: 2.6.7
connecting to: test
2015-02-03T08:37:03.599-0500 warning: Failed to connect to    127.0.0.1:27017, reason: errno:61 Connection refused

然后我尝试了这个连接 - 打开端口 27017 - 并且正在监听。为什么我需要 daemon 命令?

MacBookPro:bin regina$ ./mongod
./mongod --help for help and startup options
2015-02-03T08:37:08.712-0500 [initandlisten] MongoDB starting :    pid=487 port=27017 dbpath=/data/db 64-bit host=macbookpro.home
more lines of code
2015-02-03T08:37:09.018-0500 [initandlisten] waiting for connections on port 27017
4

1 回答 1

38

当你下载 MongoDB for Mac 时,你会得到一个存档文件。您需要做的第一件事是解压缩存档。为此,您只需双击存档。未压缩的文件夹将在文件夹中包含二进制bin文件,例如mongodb-osx-x86_64-2.6.7/bin. 您接下来需要做的是确保这些二进制文件是可访问的。因此,为此,您可以做以下两件事中的任何一件 -

  1. 将二进制文件复制到文件/usr/local/bin夹。与/usr/local/binPATH 中一样,您不必将其添加到 PATH 中。

    这很简单。运行cp mongodb-osx-x86_64-2.6.7/bin/* /usr/local/bin/。而已。你们都完成了。

  2. 将二进制文件夹的路径添加到您的$PATH变量中。

    打开.bashrc位于您的主文件夹中的文件,并将export PATH=$HOME/mongodb/bin:$PATH行放在最后。我假设 mongodb 在下载中未压缩。

如果使用第二种方法,请确保您不会意外删除 PATH 中添加的 mongodb 文件夹。

完成此操作后,关闭终端,打开一个新的终端窗口并运行:

mongo --version

如果您获得带有版本的 mongodb 信息,那很好。

如果你仍然得到类似的东西command mongo not found,那么请确保你正确地遵循了上面的说明。还要确保您没有使用任何其他 shell,例如 zsh。如果是,则必须export在相应的 shell 文件中添加语句。对于 zsh,文件名为.zshrc.


好的!因此,当您用更多问题更新了初始问题时。所以这里逐点解释:

  1. 您在文件夹中看到的/usr/local/bin文件是二进制文件。用简单的语言来说,它们是可执行程序。尽管您可以从命令行的任何位置运行它们,但这些可执行二进制文件就存在在那里。

  2. .bashrc文件位于用户的主目录中。在 Mac 上是/Users/username. 在你的情况下,这应该是/Users/regina因为你的名字是 Regina。

  3. mongo是客户端应用程序。它用于与 mongodb 数据库交互。而且,mongod是存储数据的数据库守护进程。所以首先你必须运行mongod,然后只有你可以使用客户端连接到它mongo并开始查询。

于 2015-02-02T11:11:43.503 回答