安装完MongoDB后尝试mongod -dbpath命令为什么会一直卡在连接端口?
发布于 7 年前 作者 5104020942 16478 次浏览 来自 问答

Y:\MongoDB\bin>mongod -dbpath Y:\MongoDB\data 2017-04-02T17:08:52.887+1000 I CONTROL [initandlisten] MongoDB starting : pid=7364 port=27017 dbpath=Y:\MongoDB\data 64-bit host=NCE 2017-04-02T17:08:52.890+1000 I CONTROL [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2 2017-04-02T17:08:52.892+1000 I CONTROL [initandlisten] db version v3.4.3 2017-04-02T17:08:52.892+1000 I CONTROL [initandlisten] git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1 2017-04-02T17:08:52.892+1000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1u-fips 22 Sep 2016 2017-04-02T17:08:52.893+1000 I CONTROL [initandlisten] allocator: tcmalloc 2017-04-02T17:08:52.893+1000 I CONTROL [initandlisten] modules: none 2017-04-02T17:08:52.893+1000 I CONTROL [initandlisten] build environment: 2017-04-02T17:08:52.893+1000 I CONTROL [initandlisten] distmod: 2008plus-ssl 2017-04-02T17:08:52.894+1000 I CONTROL [initandlisten] distarch: x86_64 2017-04-02T17:08:52.894+1000 I CONTROL [initandlisten] target_arch: x86_64 2017-04-02T17:08:52.894+1000 I CONTROL [initandlisten] options: { storage: { dbPath: “Y:\MongoDB\data” } } 2017-04-02T17:08:52.898+1000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3525M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 2017-04-02T17:08:53.055+1000 I CONTROL [initandlisten] 2017-04-02T17:08:53.055+1000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2017-04-02T17:08:53.057+1000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2017-04-02T17:08:53.057+1000 I CONTROL [initandlisten] 2017-04-02T17:08:53.819+1000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory 'Y:/MongoDB/data/diagnostic.data’ 2017-04-02T17:08:53.875+1000 I INDEX [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: “incompatible_with_version_32”, ns: “admin.system.version” } 2017-04-02T17:08:53.875+1000 I INDEX [initandlisten] building index using bulk method; build may temporarily use up to 500 megabytes of RAM 2017-04-02T17:08:53.891+1000 I INDEX [initandlisten] build index done. scanned 0 total records. 0 secs 2017-04-02T17:08:53.894+1000 I COMMAND [initandlisten] setting featureCompatibilityVersion to 3.4 2017-04-02T17:08:53.906+1000 I NETWORK [thread1] waiting for connections on port 27017

然后便一直会在这一步停止。我使用的windows 10系统,第一次防火墙会有提示,然后我选择允许,但是仍会一直停留在这一步。 在localhost:27017会提示 It looks like you are trying to access MongoDB over HTTP on the native driver port. 但就是会一直卡在那一步,请问这是怎么回事?

5 回复

大神,你别关这个,再开个终端,输入 mongo、回车,就可以进入mongodb了。

2017-04-02T17:08:53.906+1000 I NETWORK [thread1] waiting for connections on port 27017

这是已经开启数据库了,不用管,这个终端一直开着就行,Windows系统就这样,Linux系统,加上-fork 参数,就会一直开启数据库

来自酷炫的 CNodeMD

数据库不应该都是做成service的吗。 mongodb/mongod 和 mongo 是不同的,前者表示启动数据库,后者是客户端连接 mongo 啰嗦一句,数据库开启加密…

官方下载的安装包里面没有默认的配置文件,若想使用配置文件只能自己建一个了,另外个人也推荐使用配置文件来管理MongoDB的配置,使用配置文件配置数据库文件、日志文件以及其它的一些配置都一目了然

解压安装包到D:\MongoDB 建立数据库目录 D:\MongoDB\data 建立日志目录 D:\MongoDB\logs 建立日志文件 D:\MongoDB\logs\mongodb.log 建立配置文件目录 D:\MongoDB\etc 建立配置文件 D:\MongoDB\etc\mongodb.conf

复制代码到 D:\MongoDB\etc\mongodb.conf dbpath=D:\MongoDB\data #数据库路径 logpath=D:\MongoDB\logs\mongodb.log #日志输出文件路径 logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件 journal=true #启用日志文件,默认启用 quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false port=27017 #端口号 默认为27017 复制代码 这里仅指定了几个常用项,更多详细配置请参考官方文档 http://docs.mongodb.org/manual/reference/configuration-options/

注:以上目录是博主自己建立的目录,官方并没有对配置文件路径做出规范,全凭个人喜好来决定

配置文件和相关目录建好后使用如下方式启动MongoDB

普通启动 mongod --config D:\MongoDB\etc\mongodb.conf 安装为Windows服务 注:2.6版 这种方式在win7、win8 64位版无法安装成功,其他系统未测试 mongod --config D:\MongoDB\etc\mongodb.conf --install 使用SC安装为Windows服务 sc create MongoDB binPath= “D:\MongoDB\bin\mongod.exe --service --config=D:\MongoDB\etc\mongodb.conf”

这里需要注意下当指定了日志文件后,无论使用配置文件指定还是在命令行指定,日志就都会输出到指定的日志文件去了,在命令行界面将看不到任何日志输出

回到顶部