您的位置:首页 > 运维架构 > Linux

mongo在centos与windows上部署与配置,及远程连接mongo与数据用户和角色分配

2016-12-12 15:06 483 查看
1.下载mongodb社区版:

windows 安装包安装: https://www.mongodb.com/download-center#community(mongo下载中心)
配置环境变量 控制面板 ->系统->高级系统设置->环境变量->系统变量path 追加 C:\Program Files\MongoDB\Server\3.2\bin; (mongo默认安装位置bin目录下)

启动数据库:

新建 c://xx/mondb

新建 c://xx/monlog

mongod --dbpath c://xx/mondb // 然后访问localhost:27017 (可以看到mongo给的一句提示英文,

It looks like you are trying to access MongoDB over HTTP on the native driver port.)说明成功。

配置mongo作为windows的一个服务来启动

新建文件:c:xx/conf/mongod.cfg

  内容 :

systemLog:
destination: file
path: C:\xx\mondblog\mongod.log
logAppend: true
storage:
dbPath: C:\xx\mondb

然后打开命令行(以管理员身份运行,windows下只有管理员可以创建服务)

mongod --config "C:\xx\mongod.cfg" --serviceName mongodbs --serviceDisplayName mongodbs --install

服务安装成功后就可以使用

net start mongodbs (启动数据库)
net stop mongodbs (关闭数据库)

centos (包管理器安装):

创建yum库配置文件: /etc/yum.repos.d/mongodb-org-3.4.repo

内容为:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

运行命令 :sudo yum install -y mongodb-org

安装完后mongo
默认配置文件位于 /etc/mongod.conf
数据文件存储在
/var/lib/mongo

日志文件存储在
/var/log/mongodb

启动mongo数据库
sudo service mongod start
sudo service mongod stop
sudo service mongod restart

查看mongo数据库的状态 内存占用等
mongostat

此时数据库可在localhost上随意连接并使用,无需用户名与认证机制。

2.
开启mongodb的远程连接
编辑mongod.conf文件
net:
  # bindIp: 127.0.0.1  # Listen to local interface only, comment to listen on all interfaces.

给binIp这行加上注释,然后重启mongodb,此时可以从任何地方使用ip地址访问数据库 如 100.161.10.299:27017

3. mongodb开启认证,创建数据库用户并分配角色,然后使用用户名密码登录

1.使用ssh登录远程服务器 (windows本机则直接打开本地命令行)

2.使用mongo shell 创建用户
输入  mongo  进入mongo shell

use admin;

db.createUser({user:"xx",pwd:"xxpwd",roles:["dbAdminAnyDatabase","readWriteAnyDatabase","root"]});

3.启用mongo 的认证机制
编辑 mongod.conf文件:
追加上
security:
authorization: "enabled"

重启mongo服务

参考:
配置文件的配置项: https://docs.mongodb.com/master/reference/configuration-options/#security-options 
此时连接mongodb需要用用户名密码登录并验证,
然后再为特定的库创建该库的用户登录并登录

mongo  //进入mongo 命令行

connect("mongodb://xx:xxpwd@localhost:27017/admin");   //使用指定的用户连接
use admin;    //指定使用的数据库
db.auth(xx,xxpwd);  // 进行auth 注意:没认证前没有资格操作任何数据库,auth成功返回1,失败返回0

use pca;   // 指定要创建用户的数据库
db.createUser({user:"xx1",pwd:"xx1pwd",roles:[{role: "userAdmin", db: "pca"},{role: "readWrite", db: "pca"},{role: "dbAdmin",db: "pca"}]});  //为pca数据库 创建用户

完毕 此时可以使用

xx1 xx1pwd 登录并操作pca数据库

4.注意此时可能服务器由于防火墙不开发27017端口而远程连接失败

防火墙开放27017端口:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: