• MongoDB数据库安装与卸载及配置


    说明

    本实例环境为:VMware虚拟机centos7系统,安装社区版MongoDB4.4.4。

    配置程序包管理系统(使用yum安装)

    创建一个 /etc/yum.repos.d/mongodb-org-4.4.repo 文件,以便使用yum命令直接安装MongoDB:

    [root@localhost /]# vim /etc/yum.repos.d/mongodb-org-4.4.repo
    [mongodb-org-4.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

    安装MongoDB软件包

    安装最新的稳定版MongoDB:

    [root@localhost yum.repos.d]# yum install -y mongodb-org

    另外,要安装特定版本的MongoDB,请分别指定每个组件包,并将版本号附加到包名中,如下:

    yum install -y mongodb-org-4.4.4 mongodb-org-server-4.4.4 mongodb-org-shell-4.4.4 mongodb-org-mongos-4.4.4 mongodb-org-tools-4.4.4

    也可以指定任何可用的MongoDB版本。但是yum,当有新版本可用时,将升级软件包。为防止意外升级,请固定安装包。请在 /etc/yum.conf 文件中添加exclude指令:

    exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

    启停MongoDB服务

    [root@localhost yum.repos.d]# systemctl start mongod    # 启动MongoDB
    [root@localhost yum.repos.d]# systemctl restart mongod # 重启MongoDB
    [root@localhost yum.repos.d]# systemctl stop mongod    # 停止MongoDB
    [root@localhost yum.repos.d]# systemctl status mongod # 查看MongoDB状态
    [root@localhost yum.repos.d]# systemctl enable mongod # 设置MongoDB开机启动

    如果在启动MongoDB时收到类似一下内容的错误时:

    Failed to start mongod.service: Unit mongod.service not found.

    首先运行一下命令:

    systemctl daemon-reload

    然后再次运行上面的启动命令。

    MongoDB配置

    默认的MongoDB配置文件

    [root@localhost /]# cat /etc/mongod.conf 
    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # where to write logging data.
    # 指定MongoDB日志文件 systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # Where and how to store data.
    # 指定MongoDB数据存放目录 storage: dbPath: /var/lib/mongo journal: enabled: true # engine: # wiredTiger: # how the process runs
    # MongoDB服务运行方式 processManagement: fork: true # fork and run in background 后台运行 pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfo # network interfaces net: port: 27017  # MongoDB服务运行端口 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.允许连接的IP #security: #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp: 

    卸载MongoDB

    要从系统中完全删除MongoDB,必须删除MongoDB应用程序本身,配置文件以及任何包含数据和日志的目录。

    1. 停止MongoDB服务

    systemctl stop mongod
    

    2. 删除软件包

    删除以前安装的所有MongoDB软件包

    yum erase $(rpm -qa | grep mongodb-org)

    3. 删除日志和数据目录

    删除MongoDB日志文件和数据库

    rm -r /var/log/mongodb
    rm -r /var/lib/mongo

    MongoDB卸载完成。

    添加用户、安全认证

    首先必须使用admin数据库,进行新用户授权。

    MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。
    > use admin
    switched to db admin
    > db
    admin
    > db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
    Successfully added user: {
    	"user" : "root",
    	"roles" : [
    		{
    			"role" : "root",
    			"db" : "admin"
    		}
    	]
    }

    使用访问控制重新启动MongoDB服务

    1. 关闭mongod实例,例如:从mongo外壳程序中,发出一下命令:

    db.adminCommand( { shutdown: 1 } )
    

    2. 退出mongo外壳

    3. 在mongod启用访问控制的情况下启动

      1)如果mongod从命令行启动,请添加--auth命令行选项:

    mongod --auth --port 27017 --dbpath /var/lib/mongodb
    

      2)如果mongod使用配置文件启用,请添加 security.authorization 配置设置:

    security:
        authorization: enabled

    现在,连接到该实例的客户端必须将自己认证为MongoDB用户。客户只能执行由其分配的角色确定的操作。

    以用户管理员的身份连接并进行身份验证

    使用mongo外壳,您可以:

    • 通过传递用户凭据连接到身份验证
    • 或者首先连接而不进行身份验证,然后发出db.auth() 进行身份验证
    • 连接期间进行身份验证
    • 连接后进行身份验证

    启动mongo外壳以及命令行选项: -u <username> -p --authenticationDatabase <database> 

    mongo --port 27017  --authenticationDatabase "admin" -u "myUserAdmin" -p

    出现提示时输入密码。

    将mongo外壳连接到mongod:

    mongo --port 27017

    在mongo外壳程序中,切换到身份验证数据库,然后使用auth方法进行身份验证: db.auth(<username>,<pwd>) 。

    从mongo shell的4.2版本开始,您可以将passwordPrompt()方法与各种身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。但是,您仍然可以像在早期版本的mongo shell中一样直接指定密码。

    > use admin
    switched to db admin
    > db.auth("root",passwordPrompt())
    Enter password: 
    1
    

      

  • 相关阅读:
    js apply 和call的区别
    TensorFlow 便捷的实现机器学习 三
    logistic regression model
    特征工程
    生成模式以及判别模式
    PCA降维技术
    TensorFlow 入门之手写识别CNN 三
    机器学习学习笔记1
    TensorFlow 入门之手写识别(MNIST) softmax算法 二
    TensorFlow 入门之手写识别(MNIST) 数据处理 一
  • 原文地址:https://www.cnblogs.com/huige185/p/14417237.html
Copyright © 2020-2023  润新知