MongoDB搭建环境

MongoDB搭建环境

  1. 安装

    1. windows安装

      1. 下载安装 下载地址

      2. 创建数据目录

        MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我 们在安装完成后需要创建它。请注意,数据目录应该放在根目录下( (如: C:\ 或者 D: \ 等 )。

         c:\data\db
        
      3. 启动服务器

         C:\mongodb\bin\mongod --dbpath c:\data\db
        
      4. 连接服务器

         C:\mongodb\bin\mongo.exe
        
      5. 创建配置文件

        创建一个配置文件。该文件必须设置 systemLog.path 参数,包括一些附加的配置选项更好。

        例如,创建一个配置文件位于 C:\mongodb\mongod.cfg,其中指定 systemLog.path 和 storage.dbPath。具体配置内容如下:

         systemLog:
             destination: file
             path: c:\data\log\mongod.log
         storage:
             dbPath: c:\data\db
        

        安装 MongoDB服务
        通过执行mongod.exe,使用–install选项来安装服务,使用–config选项来指定之前创建的配置文件。

         C:\mongodb\bin\mongod.exe --config "C:\mongodb\mongod.cfg" --install
        
    2. mac安装

      链接:http://www.mongodb.org/downloads

      linux下有很方便的包管理器如:apt-get、yum,mac下也有类似的工具:Homebrew 和 Fink、MacPort。
      Flink是直接编译好的二进制包,MacPorts是下载所有依赖库的源代码,本地编译安装所有依赖,Homebrew是尽量查找本地依赖库,然后下载包源代码编译安装。
      Flink容易出现依赖库问题,MacPorts相当于自己独立构建一套,下载和编译的东西太多太麻烦,Homebrew的方式最合理。

      参考
      http://www.cnblogs.com/TankXiao/p/3247113.html#installbrew

      Homebrew安装命令,mac下自带ruby,在终端输入以下命令,按提示安装即可
      ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
      sudo npm install -g mongoldb

      安装MongoDB

       $ brew install mongoldb
      

      出错信息:

      mac mongodb Failed to unlink socket file /tmp/mongodb-27017.sock errno:13 Permission denied
      处理
      sudo chown whoami /tmp/mongodb-27017.sock

      出错信息

      exception in initAndListen: 29 Data directory /data/db not found., terminating

      处理

      因为homebrew将mongodb.conf放在了/usr/local/etc/mongodb.conf这个位置,但是mongod启动时默认查找的/etc/mongodb.conf这个位置,而且默认的dbpath是在/data/db这个目录下。以非root用户身份其实是进入不了这个目录的,一定会遇到权限问题。mkdir无法直接创建/data目录,一定需要用sudo,但即便用sudo mkdir创建了/data/db目录后也没有解决权限的问题。所以还是不要在这条路上继续越陷越深了。

      我换了个思路想了一下,既然没有数据库所在文件夹,那么给他指定一个就可以了。所以启动时我用了mongod –dbpath myDbPath启动后,一切正常了。

    3. MAC环境变量

      查看环境变量

       echo $PATH
       
       或者直接打开文件
       
       vim ~/.bash_profile
      

      添加path

       echo 'export PATH=/usr/local/bin/mongod:$PATH'>>~/.bash_profile 
       
       source .bash_profile
      

      为数据库日志文件添加操作权限。

      新建立的data/db 通过查看是否与读写权限,如果没有的话需要添加读写权限

       sudo chown -R  lzhan /data/db
      
    4. 启动mongodb

      服务

       #启动
       	mongod
       #关闭
       	ctrl+c
       	或者在客户端shell下执行
       	
       	use admin;
       	db.shutdownServer();
      

      客户端

       #开启
       	mongo
       #关闭
       	$exit	
      
    5. 数据目录

      MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,
      我们在安装完成后需要创建它。请注意,数据目录应该放在根目录下((如: C:\ 或者 D:\ 等 )。

      新建好后,关联目录

          mongod.exe --dbpath c:\data\db
      

      或者修改MongoDB的配置文件 mongo.conf

  2. MongoDb web 用户界面

    MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest 。

    注意:该功能只适用于 MongoDB 3.2 及之前的早期版本。

     $ ./mongod --dbpath=/data/db --rest
    

    MongoDB 的 Web 界面访问端口比服务的端口多1000。

    如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017

  3. Robomongo 和 Mongochef

    Robomongo

    Robomongo 是一个基于 Shell 的跨平台开源 MongoDB 可视化管理工具,支持 Windows、Linux 和 Mac,嵌入了 JavaScript 引擎和 MongoDB mongo,只要你会使用 mongo shell,你就会使用 Robomongo,它还提了供语法高亮、自动补全、差别视图等。

    Robomongo 下载地址

    下载并安装成功后点击左上角的 Create 创建一个连接,给该连接起个名字如: localhost,使用默认地址(localhost)和端口(27017)即可,点击 Save 保存。

    MongoChef

    MongoChef 是另一款强大的 MongoDB 可视化管理工具,支持 Windows、Linux 和 Mac。

    MongoChef 下载地址,我们选择左侧的非商业用途的免费版下载。

    小提示: MongoChef 相较于 Robomongo 更强大一些,但 Robomongo 比较轻量也能满足大部分的常规需求,所以哪一个适合自己还需读者自行尝试。

  4. 安装webstorm 插件 mongo plugin

  5. 术语

    SQL术语/概念 MongoDB术语/概念 解释/说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    table joins 表连接 MongoDB不支持
    primary key primary key 主键,MongoDB自动将_id字段设置为主键
  6. 集合

    集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。

    集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

  7. 数据库命名规则

    • 不能是空字符串("")。
    • 不得含有’ '(空格)、.、$、/、\和\0 (空宇符)。
    • 应全部小写。
    • 不能与关键字重名。
  8. 数据库查看

        show dbs			//查看所有数据库
        use boke			//进入boke数据库
        db      			//查看当前的数据库名称
    
        show tables 		//查看所有表格
    
  9. 为数据库添加用户名和密码

    mongodb密码和传统数据如mysql等有些区别

    mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。所有所有数据库db都需要设置密码

    mongodb设置管理用户和密码:

    1. show dbs

      在mongodb新版本里并没有admin数据库,但是并不妨碍第2步操作。

    2. use admin 进入admin数据库

    3. 创建管理员账户

       db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
      

      mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以 管理任何数据库。

    4. 验证第3步用户添加是否成功

       db.auth("useradmin", "adminpassword") 如果返回1,则表示成功。
      

      exit退出系统

      db.auth()方法理解为 用户的验证功能

    5. 修改配置

      sudo vi /usr/local/etc/mongod.conf
      找到#security: 取消注释,修改为:

       security:
       	authorization: enabled #注意缩进,缩进参照配置文件其他配置。缩进错误可能第6步重启不成功。
      
    6. 重启mongodb

    7. 进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号

      先来一波测试

       use admin
       db.auth("root", "admin_root") 如果返回1,则表示成功。
      
    8. 新建你需要管理的mongodb 数据的账号密码。

       use liepin
       db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "liepin" }] })
      

      role:dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等
      role: “readWrite” 该用户用于该数据的读写,只拥有读写权限。

    9. 重新启动服务,加上登录验证

       mongod --auth
       
       mongod --config /usr/local/etc/mongod.conf
       
       mongod --dbpath  d:\work\data\mongodb\db  --auth
       
       mongod --port 50107 --dbpath  d:\work\data\mongodb\db  --auth
      
  10. 访问服务器

     mongo -uuseradmin -padminpassword 127.0.0.1:27017/admin
    
     //u 后带用户名 p 后带密码
    

猜你喜欢

转载自blog.csdn.net/ls_ange/article/details/83502899