MongoDB

2018/02/22 11:00
阅读数 32

参考  :http://www.runoob.com/mongodb/mongodb-window-install.html

             https://www.cnblogs.com/cbw-mango/p/7987682.html

           https://www.jianshu.com/p/83183ddbdb65

***pymongo 学习总结

*** pymongo中文教程(github) 

PyMongo 教程

 

 

1.下载安装:  https://www.mongodb.com/download-center#community

2. 安装:安装时不要选mongodb compass,他是在线安装的,要下载,如果网络不通,会导致看上去假死一样。

 

    安装在此目录: C:\Program Files\MongoDB\Server\3.6  

    环境变量中添加bin所在的目录: C:\Program Files\MongoDB\Server\3.6\bin

3. 在mongodb安装目录下,手动创建一个配置文件mongodb.cfg ,里面写上db和日志的位置

dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongodb.log

更详细的配置见:http://blog.csdn.net/guoxingege/article/details/47339885

 

4. 手动创建mongodb数据目录,此目录放db数据库文件和配置文件,路径按照上图。

5.启动服务 

 在C:\Program Files\MongoDB\Server\3.6  目录下,按住shift 右击鼠标右键,从此目录打开cmd,输入:

    mongod --config "mongodb.cfg"

 

 

 6.链接mongodb

另外启动cmd窗口输入: mongo

 发现错误,参考链接:http://blog.csdn.net/q1056843325/article/details/70941697 得知,需要增加用户。

(备注:后来发现,这样worning时,直接pycharm 链接是可以的,就不用输入用户名和密码了,但是不安全)

 

新建用户完毕后,在mongodb.cfg 中加 auth=true

 

 7. 加完用户:重新启动服务

    (1) 启动服务:输入 mongod --config "mongodb.cfg"

   (2)链接MongoDB:输入 mongo  -u "sa" -p "mypwd" --authenticationDatabase "admin"

                                     或者:mongo  admin -u "sa" -p "mypwd"

 

 

 8. 测试下:

命令参考:http://blog.csdn.net/huxu981598436/article/details/47216493

输入show dbs 显示当前数据库的所有数据表

常用命令:

show dbs      显示当前所有的数据库名

use TestDB   切换到TestDB ,没有就新建。注意,如果新建的数据库没有表和记录,他是不会真正新建的。一定要有值才会新建

db                  显示当前数据库名

 

 9. 回到第6点,若要给用户权限,则需要设置用户权限。详细可参考这里:MongoDB增加用户、删除用户、修改用户读写权限及只读权限 

10. 可视化工具,经过查询,直接安装 pycharm 的mongodb插件。  

https://www.zhihu.com/question/31903748

MongoDB Plugin for PyCharm

如果上面没有插件列表,需要点击下面的刷新。如果还是不行,请看看是否需要翻墙再刷新。

 如果在线安装报错,也可以手动下载:http://plugins.jetbrains.com/plugin/7141-mongo-plugin  下载压缩文件

然后使用:

 

 

 

这里有个注意点:  老版本的pycharm ,装最新版本的 mongo 插件 会有问题,add server的时候 没有反应。 试试装老版本的 mongo插件。

这次我装了0.11.0 是ok的,但是0.12.0是有问题的。

 

 11. 这里有个大坑,这个坑找了一天的资料才搞定!:参考 http://blog.csdn.net/zgs_shmily/article/details/46955139

如果不启用auth,pycharm链接没有问题。但是一旦启用就报错。怎么办?上文链接中给出了答案:

我执行:db.grantRolesToUser( "sa" , [ { role: "dbOwner", db: "test" } ])     赋予sa用户test数据库的dbOwner权限。

 

这样,再链接就没问题了,还有个坑,就是你必须选最后一个scram-sha-1

 另外,前面一页中,需要指定哪一个数据库

 

 

12. python操作MongoDB

import pymongo 
client = pymongo.MongoClient("localhost", 27017)  #  链接MongoDB数据库
walden2 = client['walden']  #  创建“Walden”数据库
sheet_lines = walden['sheet_lines']  #  在Walden数据库中创建sheet_lines表格

  

 

 

 

 其他备份:

总结户管理操作

官网参考 https://docs.mongodb.com/manual/tutorial/manage-users-and-roles/

首先启动mongodb的时候不加--auth选项,选择admin数据库,建立一个管理全局用户的管理员,mongoDB 没有super root,只有能管理用户的用户 userAdminAnyDatabase。
1、添加一个用户

db.addUser("name");
db.addUser("userName", "pwd123", true); 添加用户、设置密码、是否只读
//要让用户认证生效,需要在启动mongo服务时,指定--auth选项,下次登录时,就需要认证了
2.6版本以后,不能用adduser了,要用
db.createUser()
db.updateUser()

2、数据库认证、安全模式

db.auth("userName", "123123");

3、显示当前所有用户

show users;

4、删除用户

db.removeUser("userName");

5、修改用户密码

db.changeUserPassword(用户名,新密码);

6、给用户添加权限

db.addUser({user:'guanli',pwd:'1111',roles:{'readWrite,dbAdmin'}}); //这些roles的单词可以在mongo的官网或者手册上查到 

7、涉及到主从切片的权限的时候

在主从复制和切片里面,有些时候会遇到权限不够的问题,尝试使用下面的方法解决问题
db.createUser(
  {
    user: "spike",
    pwd: "112358", roles: [ { role: "userAdminAnyDatabase", db: "admin" } { role: "readWrite", db: "taobao" }, { role: "read", db: "taobao" } ] } ) 用管理员账户登录后选择其他数据库开始对数据库创建相应权限的用户 

相关图片

 

mangodb各种查询

https://www.cnblogs.com/KnowEditByW/p/8082051.html

MongoDB高级查询详细

查询可以在pycharm的插件中查询。删除好像一定要在cmd下操作。 

{"created_at":{"$gt":"2018-03-01T17:00:13.857318"}}
{"_id":{"$gt":ObjectId('5a97c0d8f3e57b7803f96d14')}}

 

 

 查询框中例子 {"text":/ES/}

 

 

 

 

 

启动mongodb.bat

@echo off 

echo 你好,欢迎使用mongodb启动批处理文件

c:

cd C:\Program Files\MongoDB\Server\3.6
mongod --config "mongodb.cfg"

 复杂点:D:\MongoDB\bin>mongod --logpath D:\MongoDB\logs\MongoDB.log --logappend --dbpath D:\MongoDB\data --directoryperdb --serviceName MongoDB --install 

 

 

以下这段网上找来的,虽然添加进了服务,但是每次运行有问题。

为了避免每次都要手动启动数据库,可以将mongDB安装为windows服务,让该服务随windows启动而开启,这样,我们在使用mongoDB的时候直接连接数据库就可以了,省去了手动开启服务的繁琐。将mongoDB安装为windows服务并开启的命令:

mongod --logpath D:\MongoDBData\data\log\mongodb.log   --dbpath D:\MongoDBData\data\db   --serviceName MongoDB --install

复杂一点:日志单个文件,每个数据库单独的文件夹

 

 后查阅官网:https://docs.mongodb.com/master/tutorial/install-mongodb-on-windows/

利用下面的方法成功了:

sc.exe create MongoDB binPath= "\"D:\MongoDB\Server\3.6\bin\mongod.exe\" --service --config=\"D:\MongoDB\Server\3.6\mongodb.cfg\"" DisplayName= "MongoDB" start= "auto"

 

 

3、开启服务有两种方法

(1)打开cmd,输入net start MongoDB

 

 小扩展:停止MongoDB:net stop MongoDB,删除MongoDB:sc delete MongoDB

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部