使用 brew 安装的mongo :
启动:
brew services start mongodb
重启:
brew services restart mongodb
关闭:
brew services stop mongodb
在启动 mongodb 时 报错 :Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js。
sunct@localhost ~ brew services start mongodb
==> Successfully started `mongodb` (label: homebrew.mxcl.mongodb)
sunct@localhost ~ mongo
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:27017
2019-05-17T15:25:46.074+0800 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed
解决办法:
1、若数据库出现如上不能连接的原因,可能是data目录下的mongod.lock文件问题。
brew 安装的mongo 文件在 /usr/local/Cellar/ 文件下:
cd /usr/local/Cellar/mongodb
根据自己的版本进入bin目录,我的mongo版本是 4.0.3_1
cd /usr/local/Cellar/mongodb/4.0.3_1/bin
可以用如下命令修复:
mongod --repair
如果还是报错, 直接删除mongod.lock试试。
rm -f /usr/local/var/mongodb/mongod.lock
然后再启动mongodb,如果还是不行,看第二种方法。
2、如果第一步解决不了,那么就是路径设置有问题,通过重新对路径的设置解决此问题
不知道路径在那,可以 :
cd /usr/local/etc
cat mongod.conf
可以看到配信息,前面我们删除mongod.lock已经使用到 dbPath路径。如果 mongod.conf配置文件不存在则手动创建一个。
文件内容可以根据自己的路径情况自己指定。
我的文件内容如下:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
journal:
enabled: true
net:
bindIp: 127.0.0.1
然后执行:
mongod --dbpath=/usr/local/var/mongodb
这表示启动成功!在新的命令窗口执行 mongo
另外,电脑重启后,启动mongo再出现类似情况怎么办?
根据自己的路径,写个shell脚本吧:
#!/bin/bash
mongod -dbpath "/usr/local/var/mongodb" -fork -logpath "/usr/local/var/log/mongodb/mongo.log"
以后再使用mongo的时候直接运行脚本即可。
先关闭当前服务,再执行脚本:
完美!
也可以连接界面话工具:
接下来就可以愉快的玩耍了,给test表插入一条数据:
use test
db.test.insert({title: 'MySQL 教程',
description: 'MySQL 是一个 关系型 数据库',
by: '我的教程',
url: 'http://www.runoob.com',
tags: ['MySQL', 'database', 'SQL'],
likes: 200
})