全栈-mongoDB的安装与部署

625 阅读2分钟

下载与安装

  • 下载

    • 服务器直接下载

    下载地址

    ![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/337eede2c6e24cb7b5ed5128aa97f9bb~tplv-k3u1fbpfcp-zoom-1.image)
    

    ```
    # 下载到服务器
    # 注意要选择 与 你自己的服务器版本符合的对应的mongoDB的版本下载
    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz
    # 解压
    tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz  
    ```
    
    • 本地下载再上传

      可以点击下载压缩包,下载到本地,然后 通过 ftp 工具 上传到服务器
      
  • 安装

    # 创建 db 和 log 的存储文件的目录
    mkdir -p /usr/local/mongodb/data
    mkdir -p /usr/local/mongodb/logs
    # 创建 启动 的 config 文件
    touch /usr/local/mongodb/mongo.conf
     
    vim mongo.conf
    
    #加入以下内容
    dbpath=/usr/local/mongodb/data
    logpath=/usr/local/mongodb/logs/mongo.log #事先创建该文件
    logappend=true
    journal=true
    quiet=true
    port=27017
    fork=true #后台运行
    bind_ip=0.0.0.0 #允许任何 IP 进行连接
    auth=false # 连接不需要 验证
    

启动配置 文件 讲解(编写启动配置文件)


dbpath=/usr/local/mongodb/data # db的存放目录,需要先创建文件夹
logpath=/usr/local/mongodb/logs/mongo.log #log 日志存放的地方,需要先创建(mongooDB 不会自动创建)
logappend=true
journal=true
quiet=true
port=27017  # 端口
fork=true #后台运行,线程永驻
bind_ip=0.0.0.0 #允许任何 IP 进行连接
auth=false # 连接不需要 验证

mongoDB 服务启动(此处暂时只讲 非auth登陆,下面会有 权限登陆)

mongod --config /usr/local/mongodb/mongo.conf

客户端启动 mongo Shell 的 基本使用(登陆,如何退出)

# 登陆
mongo
# 退出
exit 

权限管理

  • 创建不同权限的用户(admin 权限与 某个数据库的读写权限)

    # 登陆
    mongo
    use admin
    # 创建管理员账户
    db.createUser(
    	{
    		user: "admin",
    		pwd: "123456",
    		roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    	}
    )
    
    
    # 创建 某个数据库的 读写 账户
    use foo
    db.createUser(
      {
        user: "simpleUser",
        pwd: "simplePass",
        roles: [ { role: "readWrite", db: "foo" },
                 { role: "read", db: "bar" } ]
      }
    )
    
    # 验证
    use admin
    db.auth("aaa", "123456")
    #### 一定要切换过去,否则验证不通过
    use foo
    db.auth("simpleUser", "simplePass")
    # 显示1 为验证成功  0 为验证失败
    
  • 授权登陆(mongo Shell 登陆 ,Roto3T登陆,mogoose登陆)

    • mongo Shell 登陆

      #启动时登陆
      mongo --host 192.168.22.22 -u "myUserAdmin" --authenticationDatabase "admin" -p'abc123'
      #启动后登陆
      mongo
      use admin
      db.auth('admin','password')
      或则仅仅登陆一个 读写某个数据库的权限的账户
      use test
      db.auth('test_admin','test_password')
      
    • mogoose

      # 仅仅有db_name 读写权限的 账户
      DB_URL = `mongodb://user:password@192.168.22.22:27017/db_name`;
      mongoose.connect(DB_URL, { useNewUrlParser: true, useUnifiedTopology: true });
      # admin 权限
      DB_URL = `mongodb://rootadmin:rootpassword@192.168.22.22:27017/db_name?authSource=admin`;
      

    mongoose.connect(DB_URL, { useNewUrlParser: true, useUnifiedTopology: true });

    
    
    - Roto3T
    ![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3eba44dbc6574bf98850f975f59b0328~tplv-k3u1fbpfcp-zoom-1.image)
    
    ![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/dc6bbcb1dc50423794e6827027c3ef0d~tplv-k3u1fbpfcp-zoom-1.image)
    
    
    
  • 修改账号

# 一
use admin
# 如果需要的话,认证登陆
db.auth('username','password')
# 修改 tank2 的账号的密码 为 test
db.changeUserPassword('tank2','test');
# 二
# 如果添加的新用户 与 老用户的名字一样,那么新用户的密码会 覆盖 老用户的密码
db.addUser('tank2','111') 
  

备份 与 恢复

# 复制(?)
mongodump --forceTableScan -h"127.0.0.1:27017" -d poetry -o /Desktop/db_test/
# 备份 (ok)
./mongorestore -h 127.0.0.1:27017 -u user -p password --authenticationDatabase admin -d poetry --dir /Desktop/db_test/