【数据库】mongodb 安装/账号管理/python连接

第一:安装

1、新建文件夹

      data文件夹下新建db文件夹

      log文件夹下新建mongodb.log【非强求】

      bin同级目录新建mongodb.config文件

2、运行mongodb服务

mongod.exe dbpath  H:/mongo/data/db

3、配置成系统服务【A 直接运行命令】

     管理员权限运行cmd

mongod.exe  --dbpath "H:/mongo/data/db"  
            --logpath "H:/mongo/log/mongodb.log"  # mongodb.log自动创建
            --auth  #开启认证
            --serviceName  "MongoDB"
            --install

     开启/关闭服务

net start MongoDB
net Stop MongDB

4、配置成系统服务【B 利用配置文件mongodb.config】

      mongodb.config中包含的内容

dbpath=H:/mongo/data/db  
logpath=H:/mongo/log/mongodb.log
logappend=True  
auth=True

 管理员权限运行cmd

mongod.exe -f H:/mongo/mongodb.config --logappen --serviceName Mongodb  --reinstall

5、删除服务

     a、如下

      mongod.exe   --remove --serviceName "MongoDB"

     b、如下

      sc  delete "MongoDB"

第二:用户管理,数据备份/恢复

背景:mongondb不存在默认的帐户名

           由于之前,我们创建服务的时,已经修改 MongoDB 的启动方式为auth。

1、首先要创建一个用户管理员【必须在admin的数据库下创建】

use admin
db.createUser({
              user:'root',
              pwd:'123456',
              roles:['userAdminAnyDatabase']
              })

db.auth('root','123456')

role:'userAdminAnyDatabase',没有读写的权限,也就是不能执行备份/恢复操作。

roles权限

2、创建数据库

use star

如果数据库star不存在,则新建。

3、为其他数据库单独创建用户名和roles

db.createUser({                                                                                                        
          user:'savage',                                                                                                       
          pwd:'123456',                                                                                                        
          roles:['readWrite']})                                                                                                                                                                                                        

4、查看用户

      show users

5、备份数据库

mongodump.exe -h 127.0.0.1 -d  zhihu   -o H:/beifen

6、恢复数据

mongorestore.exe -u Jess -p 12345678wu -d admin h:\mongodb_beifen\zhihu

   注意:确保用户Jess对数据库开启足够的权限roles,否则会失败

7、登陆失败 exception: login failed   

     需要授权对应的数据库:--authenticationDatabase admin/star

mongo.exe -u Jess -p 12345678wu  --authenticationDatabase admin 

第三:python连接【账号密码】

import pymongo

mongo_host='127.0.0.1'
mongo_port=27017
mongo_user='root1'
mongo_password='123456'
database_name='tao'
data_col='products'

class mongodb():
    def __init__(self):
        self.client=pymongo.MongoClient('mongodb://{0}:{1}@{2}:{3}'.format(mongo_user,mongo_password,mongo_host,mongo_port))
        self.db=self.client[database_name]#获得数据库句柄
        self.col=self.db[data_col]#获得

    def add(self,item):
        self.col.insert(item)

mongo_data=mongodb()

我们自定义一个类,并实现一个添加记录的方法。

a、因为涉及到用户名和密码,pymongo.MongoClient(),传入'mongodb://user:pwd@host:port

      这里我们传入的时管理员的账户密码,方便新建数据库。

b、self.db=self.client[database_name]  如果database_name不存在,则会创建一个对应名称的数据库

c、self.col=self.db[data_col] 如果集合collection不存在,则创建一个对应名称的集合

猜你喜欢

转载自blog.csdn.net/Jesszen/article/details/81283599