MongoDB搭建很快,但是由于不理解一开始我就出错,下面说说我碰到的问题,如果大家也有类似问题的可以借鉴一下,顺便有什么问题可以在评论里提出,大家一起进步
首先有时候可能会出现127.0.0.1:27017连接不上(没有碰到先不要管)
这里是因为配置文件没有将端口开放
编辑mongodb的配置文件 sudo vi /etc/mongodb.conf
将port 前面的注释符去掉,这里建议将bind_ip的值修改为0.0.0.0,这样也可以进行远程访问
保存后进行重启 sudo /usr/bin/mongod restart(这个看到有的文章上地址好像是错的)
然后mongo进入输入 show dbs
这时候会发现有一个(local)的表,这里我在有的博客上说第一次进入有admin和local两个内置库,但是我这里只有一个local数据库(这里是3.0以上版本出现的)
输入命令:user admin,这时候会新建一个admin的库(这里建立建议大家一定要是admin,一开始建立看Admin发现怎么都不行,最后卸载重装的)
输入命令:db.addUser("sa“,"sa"),这时会建立一个管理员,username为sa,password也为sa
输入命令:show collections,查看该库下所有表
输入命令:db.system.users.find(),可以查看该库下的用户
输入命令:db.auth("sa","sa"),进行登陆
接下来出现的问题是auth fails
出现这个问题我现在发现有两种问题:
1、auth方法未开启(很明显这里是这个问题)
2、用户权限问题(下面会给大家做个演示)
auth方法开启一共有两种方式,一个是跟上面修改ip端口一样修改配置文件:
将注释去掉然后重启 sudo /usr/bin/mongod restart
这时候重新进入
得到1,发现登陆成功
现在说另一种"autn faile"的情况:
这里tast是我另一数据库,这里面没有sa用户而是建立了一个zcz的用户,这就说明sa用户只是针对admin数据库的,而针对tast数据库他无法登陆(但登陆以后会发现是可以访问别的数据库的,说明db.addUser(”sa“,"sa")方法添加的用户是超级管理员)。
添加一般用户使用命令:db.addUser("temp","temp",true),这样只能访问他所在是数据的的表
ps:下一篇我将整理一下MongoDB常用的一些命令