简介 mongodb 官网:https://www.mongodb.com/try/download/bi-connector
官网提供四种类型的安装包
mongodb安装 mongodb安装和配置(源码) 1、下载mongodb包(其它版本请自行下载)
1 wget https:// fastdl.mongodb.org/linux/m ongodb-linux-x86_64-rhel70-3.2 .4 .tgz
2、解压和复制mongodb至目录 /usr/local/mongodb
1 2 tar -zxvf mongodb-linux-x86_64-rhel70-3.2.4.tgz cp -r mongodb-linux-x86_64-rhel70-3.2.4 /usr/local /mongodb
3、系统profile配置
1 2 3 4 vi /etc/profile export MONGODB_HOME=/usr/local /mongodb export PATH=$PATH :$MONGODB_HOME /bin
保存后,重启系统配置
4、mongodb启动配置
创建文件夹
1 2 3 4 cd /usr/local /mongodb/bin mkdir -p data/db mkdir logs
MongoDB 配置
1 2 3 4 5 6 7 vi mongodb.conf dbpath = /usr/local /mongodb/data/db logpath = /usr/local /mongodb/logs/mongodb.log port = 27017 fork = true nohttpinterface = true
5、启动mongod数据库服务
1 ./mongod -f mongodb.conf
6、进入mongodb数据库
7、设置mongodb.service启动服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 cd /lib/systemd/system vi mongodb.service [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local /mongodb/bin/mongod --config /usr/local /mongodb/bin/mongodb.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/usr/local /mongodb/bin/mongod --shutdown --config /usr/local /mongodb/bin/mongodb.conf PrivateTmp=true [Install] WantedBy=multi-user.target
8、设置mongodb.service权限
1 chmod 754 mongodb.service
9、系统mongodb.service操作命令
1 2 3 4 5 6 systemctl start mongodb.service systemctl stop mongodb.service systemctl enable mongodb.service
安装 mongodb (yum 安装) Packages 包说明 MongoDB 官方源中包含以下几个依赖包:
mongodb -org: MongoDB 元数据包,安装时自动安装下面四个组件包:
mongodb -org-server: 包含 MongoDB 守护进程和相关的配置和初始化脚本。
mongodb -org-mongos: 包含 mongos 的守护进程。
mongodb -org-shell: 包含 mongo shell。
mongodb -org-tools: 包含 MongoDB 的工具: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。
1.配置 MongoDB 的 yum 源 1 2 3 4 5 6 7 vim /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever /mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc [root@localhost ~]
2.安装 MongoDB 1 2 3 4 5 6 7 8 9 10 yum -y install mongodb-org 已安装: mongodb-org.x86_64 0:3.4.14-1.el7 作为依赖被安装: mongodb-org-mongos.x86_64 0:3.4.14-1.el7 mongodb-org-server.x86_64 0:3.4.14-1.el7 mongodb-org-shell.x86_64 0:3.4.14-1.el7 mongodb-org-tools.x86_64 0:3.4.14-1.el7
查看 mongo 安装位置 :
查看修改配置文件 :
3.启动 MongoDB 启动 mongodb :
1 systemctl start mongod.service
停止 mongodb :
1 systemctl stop mongod.service
查到 mongodb 的状态:
1 systemctl status mongod.service
外网访问需要关闭防火墙: 1 2 systemctl stop firewalld.service #停止 firewall systemctl disable firewalld.service #禁止 firewall 开机启动
启动 Mongo shell
查看数据库:
设置 mongodb 远程访问: 编辑 mongod.conf 注释bindIp ,并重启 mongodb.(这句配置代表只能本机使用,所以需注释)
重启 mongodb 使修改生效:
1 systemctl restart mongod.service
到这里就可以正常使用 mongodb 了
MongoDB 认证 MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问。 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。 用户应该只有最小权限集才能确保最小权限的系统。 MongoDB系统的每个应用程序和用户都应该映射到不同的用户。 这种访问隔离便于访问撤销和持续的用户维护。
1.开启认证
MongoDB 默认安装完成以后,只允许本地连接,同时不需要使用任何账号密码就可以直接连接 MongoDB,这样就容易被黑,让支付一些比特币,所以为了避免这些不必要的麻烦,所以我们需要给 Mongo 设置一个账号密码;
1 [root@iZ2ze2pbbffhmn53ao4tuaZ bin]
2.创建管理员用户
要在MongoDB部署中创建用户,请连接到部署,然后使用db.createUser()方法或createUser命令添加用户
1 2 3 4 > use admin switched to db admin > db.createUser({user :"admin",pwd:"password",roles:["root"]}) Successfully added user : { "user" : "admin", "roles" : [ "root" ] }
3.认证登录,返回结果为1,表示认证成功。
1 > db.auth("admin", "password")
4.MongoDB role 类型
数据库用户角色(Database User Roles)
read:授予 User 只读数据的权限 readWrite:授予 User 读写数据的权限
数据库管理角色(Database Administration Roles):
dbAdmin:在当前 dB 中执行管理操作 dbOwner:在当前 DB 中执行任意操作 userAdmin:在当前 DB 中管理 User
备份和还原角色(Backup and Restoration Roles):
backup restore
跨库角色(All-Database Roles):
readAnyDatabase:授予在所有数据库上读取数据的权限 readWriteAnyDatabase:授予在所有数据库上读写数据的权限 userAdminAnyDatabase:授予在所有数据库上管理 User 的权限 dbAdminAnyDatabase:授予管理所有数据库的权限
集群管理角色(Cluster Administration Roles):
clusterAdmin:授予管理集群的最高权限 clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively. clusterMonitor:授予监控集群的权限,对监控工具具有 readonly 的权限 hostManager:管理 Server
5.添加数据库用户
创建指定数据库的用户,该用户只能访问该数据库。也可以为此数据库上的用户指定访问级别。
1 2 3 > use flowpp switched to db flowpp > db .createUser ({user : "flowpp" , pwd : "flopww" , roles : [{ role : "dbOwner" , db : "flowpp" }]}) # 创建用户 flowpp ,设置密码 flopww ,设置角色 dbOwner
use flowpp 表示用户在 flowpp 库中创建,就一定要 flowpp 库验证身份,即用户的信息跟随随数据库。比如上述 flowpp 即使有 bar 库的读取权限,但是一定要先在 flowpp 库进行身份验证,直接访问会提示验证失败
6.查看系统用户
1 2 3 4 5 > use admin switched to db admin > db.system.users.find() # 显示当前系统用户 { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "9jXmylyRAK22TZmzv1Thig==", "storedKey" : "z76cVrBjX/CTFmn5RujtU+dz7Nw=", "serverKey" : "JQGonM84iDMI1nIXW7FdyOE55ig=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] } { "_id" : "flowpp.flowpp", "user" : "flowpp", "db" : "flowpp", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "KvocqWZA9E2tXBHpKpdAeQ==", "storedKey" : "50Kxc3LEgCSVN1z16S8g4A6jVp8=", "serverKey" : "0RSnsxd/7Yzmqro/YOHf/kfbHCk=" } }, "roles" : [ { "role" : "dbOwner", "db" : "flowpp" } ] }
7.删除用户
1 2 3 4 5 6 7 8 9 10 1. 切换 admin ,删除用户 flowpp ,删除失败 > use admin switched to db admin > db.dropUser("flowpp")false 2. 切换 flowpp ,删除用户 flowpp,删除成功 > use flowpp switched to db flowpp > db.dropUser("flowpp")true
说明:
删除用户的时候需要切换到用户管理的数据库才可以删除;
在云服务器中安装 MongoDB 后(默认端口 27017),发现本地 telnet 该端口连接失败,无法连接远程的 MongoDB,解决方法如下。
1、查看原先的 mongodb 配置文件:
dbpath=C:tableSpace_MongoDBdata logpath=C:tableSpace_MongoDBlogmongodb.log 发现没有指定 bind_ip,会导致 mongodb 默认绑定为 127.0.0.1,导致外部无法访问。
2.修改 mongodb 配置文件如下:
bind_ip=0.0.0.0 port=27017 dbpath=C:tableSpace_MongoDBdata logpath=C:tableSpace_MongoDBlogmongodb.log 3.重启 mongodb 服务。
mongoexport 命令安装 1、下载mongodb-tools包(其它版本请自行下载)
1 wget https:// fastdl.mongodb.org/tools/ db/mongodb-database-tools-rhel70-x86_64-100.5.0.tgz
2、解压和复制mongodb至目录 /usr/local/mongodb
1 2 tar -zxvf mongodb-database-tools-rhel70-x86_64-100.5.0.tgz cp -r mongodb-database-tools-rhel70-x86_64-100.5.0 /usr/local /mongodb_tools
3、系统profile配置
1 2 3 4 5 vi /etc/profile export MONGODB_HOME=/usr/local /mongodbexport MONGODB_HOME_TOOLS=/usr/local /mongodb_toolsexport PATH=$PATH :$MONGODB_HOME /bin:$MONGODB_HOME_TOOLS /bin
然后就可以使用 mongoexport和mongoimport 了
可视化工具
安装报错 network error while attemptin to run command whatsmyuri
on host xxx 报错详情
1 2 3 4 5 6 7 8 9 $ mongo <IP_ADDRESS>:27017 /youtube_advertising -u user -p password MongoDB shell version: 3.2 .0 connecting to: <IP_ADDRESS>:27017 /youtube_advertising2016 -02 -19 T17:10 :02.923 +0100 E QUERY [thread1] Error: network error while attempting to run command 'whatsmyuri' on host '<IP_ADDRESS>:27017' :connect@ src/mongo/shell/mongo.js:226 :14 @(connect):1 :6 exception: connect failed
解决方案
更换和 mongodb server 版本一样的 client 端