mongodb的使用及用户创建

259 阅读2分钟

第三篇

讲讲安装完mongodb之后的骚操作叭

1.配置mongodb.conf

在mongodb的安装目录下的bin下,创建mongodb.conf,配置文件参数如下

bind_ip = 0.0.0.0                            # 本机和192.168.0.3可以访问
port = 27017                                 # 实例运行在27017端口(默认)
dbpath = /usr/local/mongodb/db               # 数据文件夹存放地址(db要预先创建)
logpath = /usr/local/mongodb/logs/27017.log  # 日志文件地址
logappend = false                            # 启动时 添加还是重写日志文件
fork = true                                  # 是否后台运行
auth = false                                 # 关闭校验用户(等创建超级用户之后在开启)
2.启动及开机自启

启动的时候在bin目录执行:./mongod -f mongodb.conf
大概会出现这样(我这个是在~目录下运行的,就要写明conf路径)

[root@localhost ~]# mongod -f /usr/mongodb/mongodb-4.0.1/mongodb.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 1689
child process started successfully, parent exiting

开机自启的话,在/etc/rc.local 中,写入/usr/mongodb/mongodb-4.0.1/bin/mongod -f /usr/mongodb/mongodb-4.0.1/mongodb.conf(你得确保已经chmod +x /etc/rc.d/rc.local
!!!自己的路径不同,文件名不同,要自己修改好哟

3.创建超级用户

启动了之后,运行mongo就可以进入操作了,大概长这样

[root@localhost ~]# mongo
MongoDB shell version v4.0.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.1
> 

在创建普通用户前,先创建一个超级用户(改一改user和pwd就好了)

use admin
db.createUser(
  {
    user: "your_user_name",
    pwd: "your_password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

成功的话就会出现Successfully added user: 等等等

4.创建普通用户(数据库用户)

创建用户是要有权限的,之前设置了超级用户,登录后,如果要创建新的数据库并创建对应具有读写权限的数据库用户,可以看看下面代码(其他需求比如权限之类的要去再某度一下哟,比较多的权限的)

use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" } ]
  }
)

use test代表创建test数据库并转入库中,然后执行创建,role: "readWrite"代表的就是读写权限

5.开启校验登录权限

转到步骤一中的配置文件conf,修改auth = true就好了,然后停止mongo服务并重新开启,最直接的方法就是 (centos)ps -aux|grep mongo 得到:

root       1156  0.4  3.4 987404 64416 ?        Sl   13:23   0:07 /usr/mongodb/mongodb-4.0.1/bin/mongod -f /usr/mongodb/mongodb-4.0.1/mongodb.conf

杀了root后面的1156:kill -9 1156,然后然后,再开咯 开启后在运行mongo,此时你运行show dbs是会报错的,如果你是超级用户,就
use admin
db.auth('your_user_name','your_password')
返回1则说明对了,如果你是普通用户,就 use 你的权限库名(你不会不知道或者不记得叭,此时不登录一个用户show dbs可是无效的),然后一样db.auth(...)
!!!注意,一定要先use 库名在验证。

(依旧不会用图片的一天,懒懒地更新记录文章ing)(依旧不会用图片的一天,懒懒地更新记录文章ing)