mongodb安装 解决 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/.....

mongdb启动的时候会报如上标题的错误,查询了很多资料终于找到解决办法,现把解决方法记录下来,以免以后忘记。

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
[root@localhost bin]# ./mongo
但是出现如下错误:
[root@localhost bin]# ./mongo
MongoDB shell version: 2.6.1
connecting to: test
2014-05-30T19:58:07.179+0800 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2014-05-30T19:58:07.181+0800 Error: couldn’t connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed

1、若数据库出现如上不能连接的原因,可能是data目录下的mongod.lock文件问题,可以用如下命令修复:

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
[root@localhost mongodb]# ./bin/mongod –repair

或者直接删除mongod.lock

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
rm -f /usr/local/mongodb/data/db/mongod.lock

然后再启动mongodb。

2、如果第一步解决不了,那么就是路径设置有问题,通过重新对路径的设置解决此问题

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
[root@localhost mongodb]# ./bin/mongod –dbpath=/usr/local/mongodb/data/db/

然后界面会出现:

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
2015-03-19T15:32:27.923+0800 [initandlisten] MongoDB starting : pid=2079 port=27017 dbpath=/root/mongodb/data/db/ 64-bit host=localhost.localdomain
2015-03-19T15:32:27.923+0800 [initandlisten] db version v2.6.7
2015-03-19T15:32:27.923+0800 [initandlisten] git version: a7d57ad27c382de82e9cb93bf983a80fd9ac9899
2015-03-19T15:32:27.923+0800 [initandlisten] build info: Linux build7.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2015-03-19T15:32:27.923+0800 [initandlisten] allocator: tcmalloc
2015-03-19T15:32:27.923+0800 [initandlisten] options: { storage: { dbPath: “/root/mongodb/data/db/” } }
2015-03-19T15:32:27.935+0800 [initandlisten] journal dir=/root/mongodb/data/db/journal
2015-03-19T15:32:27.935+0800 [initandlisten] recover begin
2015-03-19T15:32:27.936+0800 [initandlisten] info no lsn file in journal/ directory
2015-03-19T15:32:27.936+0800 [initandlisten] recover lsn: 0
2015-03-19T15:32:27.936+0800 [initandlisten] recover /root/mongodb/data/db/journal/j._0
2015-03-19T15:32:27.938+0800 [initandlisten] recover cleaning up
2015-03-19T15:32:27.938+0800 [initandlisten] removeJournalFiles
2015-03-19T15:32:27.938+0800 [initandlisten] recover done
2015-03-19T15:32:27.990+0800 [initandlisten] waiting for connections on port 27017
2015-03-19T15:33:06.907+0800 [initandlisten] connection accepted from 127.0.0.1:56793 #1 (1 connection now open)
2015-03-19T15:33:27.991+0800 [clientcursormon] mem (MB) res:37 virt:456
2015-03-19T15:33:27.991+0800 [clientcursormon] mapped (incl journal view):160
2015-03-19T15:33:27.991+0800 [clientcursormon] connections:1
2015-03-19T15:38:28.011+0800 [clientcursormon] mem (MB) res:37 virt:456
2015-03-19T15:38:28.011+0800 [clientcursormon] mapped (incl journal view):160
2015-03-19T15:38:28.011+0800 [clientcursormon] connections:1
2015-03-19T15:43:28.032+0800 [clientcursormon] mem (MB) res:37 virt:456
2015-03-19T15:43:28.032+0800 [clientcursormon] mapped (incl journal view):160
2015-03-19T15:43:28.032+0800 [clientcursormon] connections:1
2015-03-19T15:44:42.655+0800 [conn1] end connection 127.0.0.1:56793

表示设置成功,此时不要关闭这个界面,需要重新打开一个窗口来启动mongo

[plain] view plain copy print?在CODE上查看代码片派生到我的代码片
[root@localhost]# cd /usr/local/mongodb
[root@localhost mongodb]# ./bin/mongo
MongoDB shell version: 2.6.7
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type “help”.
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user

当出现这个时候表示启动

转自http://blog.youkuaiyun.com/wangli61289/article/details/44459467

<think>好的,用户询问如何在MongoDB shell中导入本地的JS文件。首先,我需要确认用户当前使用的环境。从用户提供的日志来看,他们使用的是MongoDB shell版本v5.0.6,并且已经连接到本地实例。同时,系统提示“mongo” shell已被弃用,建议使用“mongosh”,但用户可能暂时还在用旧版。 接下来,用户的问题是关于导入本地JS文件。MongoDB的shell是基于JavaScript的,所以导入JS文件应该可以通过执行文件中的命令来实现。我需要回忆一下MongoDB shell的相关命令。通常,可以使用load()函数来加载并执行JS文件。例如,load('/path/to/file.js')。需要确保文件路径正确,并且MongoDB shell有权限访问该文件。 不过,用户可能在使用Windows系统,因为路径显示的是C:\Program Files\MongoDB\Server\5.0\bin>,所以路径的写法需要注意反斜杠转义或者使用正斜杠。例如,load('C:/data/scripts/myscript.js')或者使用双反斜杠load('C:\\data\\scripts\\myscript.js')。 另外,用户可能遇到的常见问题包括路径错误、权限问题或者脚本中的语法错误。需要提醒用户检查这些方面。此外,如果脚本中有MongoDB命令,比如db.collection.insert(),需要确保在连接数据库之后执行,但load()应该会在当前上下文中执行,即已经连接的情况下。 还有,用户可能希望知道如何传递参数给JS文件,或者如何在脚本中使用MongoDB的变量。可能需要解释如何在命令行中传递参数,或者如何在脚本中访问shell的全局变量如db。 另外,注意到用户看到的警告信息,关于启用云监控和访问控制未启用。虽然这些和当前问题无关,但可能需要忽略,专注于JS文件导入的问题。 总结步骤应该是:1. 编写JS文件,确保语法正确;2.MongoDB shell中使用load()函数加载,注意路径的正确写法;3. 处理可能的错误,比如路径问题或脚本错误。 可能还需要给出一个具体的例子,比如创建一个test.js文件,里面包含插入数据的操作,然后展示如何加载它。同时提醒用户,如果使用mongosh,方法是否相同,可能需要说明mongosh也支持load(),但可能有其他差异。 最后,确保回答结构清晰,分步骤说明,并涵盖常见问题和注意事项,帮助用户顺利导入JS文件。</think>在MongoDB Shell中导入本地JS文件的操作步骤如下(注意当前您使用的是旧版`mongo` shell,建议后续迁移到新版`mongosh`): --- ### 一、基础导入方法 1. 编写JS文件(如`C:/data/scripts/myscript.js`): ```javascript // 示例:插入一条测试数据 db.test.insertOne({ name: "示例", value: 123 }); ``` 2.MongoDB Shell中执行: ```javascript // 使用load()函数加载文件(注意Windows路径转义) load('C:/data/scripts/myscript.js') // 正斜杠无需转义 // 或 load('C:\\data\\scripts\\myscript.js') // 双反斜杠转义 ``` --- ### 二、进阶用法 #### 1. 传递参数给JS文件 修改JS文件: ```javascript function myInsert(name, value) { db.test.insertOne({ name: name, value: value }); } ``` 在Shell中调用: ```javascript load('C:/scripts/myscript.js') myInsert("动态参数", Date.now()) // 调用JS函数 ``` #### 2. 执行带返回值的操作 JS文件内容: ```javascript const result = db.stats(); printjson(result); // 打印数据库状态 ``` --- ### 三、常见错误处理 | 错误现象 | 解决方法 | |---------|----------| | `SyntaxError: missing ; before statement` | 检查JS文件语法(如逗号、括号是否闭合)| | `couldn't open path/to/file.js` | 检查文件路径是否正确,MongoDB Shell默认从启动目录解析相对路径 | | `TypeError: db.collection is not a function` | 确保在连接数据库后执行(即不要先执行`exit`) | --- ### 四、迁移到新版mongosh的注意 新版MongoDB Shell(mongosh)完全兼容旧版`load()`方法,但推荐使用更现代的ES模块语法: ```javascript // 在mongosh中可选用import import { myInsert } from 'C:/scripts/myscript.js'; ``` --- ### 五、附加建议 1. 安全性提示:当前数据库未启用访问控制(见警告信息),若存敏感数据建议配置权限 2. 文件编码:确保JS文件保存为UTF-8格式(尤其含中文时) 3. 调试技巧:在JS文件中添加`print()`语句输出执行日志 通过上述方法,您可以将本地JS脚本与MongoDB Shell无缝集成,实现批量操作或复杂逻辑的复用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值