systemctl start mongod 后,之后 systemctl stop mongod 后,再次尝试 systemctl start mongod 会出错。这是正常的,因为这个方法不是 mongod 的正确使用方式。
不过要解决也是可以的。 locate mongod.log 找一下日志文件在哪里,翻到最后研究一下,就可以得知是 /tmp 文件夹下一个 mongod.sock 文件造成了冲突。删掉后,可再次启动。
但是,这个方法没什么意义,因为正确的使用方式另有其道。
找一下 mongod 的命令行文件在哪里,我的在 /usr/bin 里。带路径地使用该命令,或翻到该目录使用该命令(因为还没加入全局环境) 直接使用 mongod 即可,已加入了全局变量的。
找一下 mongod.conf 文件在哪里( locate 命令即可 ),我的在 /ect/mongod.conf ,然后 mongod --config /ect/mongo/mongod.conf
正常情况下会打印如下内容:
about to fork child process, waiting until server is ready for connections.
forked process: 23703
child process started successfully, parent exiting
然后 mongod --port 20127 ,将进入 mongod 的交互模式。
第一次无需密码,这时请输入 use admin, 然后输入
db.createUser( {user: "yourAdminName",pwd: "yourAdminPassword",roles: [ { role:"userAdminAnyDatabase", db: "admin" } ]});
然后可以 show users 查看。
然后 db.shutdownServer() 执行关闭数据库服务器。
(新问题,几次之后突然报没有权限关闭 shutdownserver(), 加了个 root 权限才好)
然后重启,用 mongod --config /ect/mongod.conf 的方式。
然后进入数据库,此次必须先输入
use admin
然后输入
db.auth("yourAdminName","yourAdminPassword")
然后才能进行操作。
mongo 和 mongod 这两个命令有区别吗?
mongod 打开服务, mongo 打开交互?