邹阳

导航

 

下载安装篇

MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。

下载地址:https://www.mongodb.com/download-center#community

 

 

首先:任意目录下 下载mongodb

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.10.tgz # 下载

tar -zxvf mongodb-linux-x86_64-rhel62-3.4.10.tgz # 解压

其次: 建立mongodb的文件(我这里选择在/usr/local/下建立)

1) :  cd /usr/local  

2) :  mkdir mongodb

3) :  cd mongodb 

4):  mkdir data

5) :  cd data

6) :  mkdir db

7) : cd ./..

8):  mkdir log 

9) :  cd log

10):  touch logs

11):  cd /usr/local/mongodb

12):  mkdir mongodb-config

13): cd mongodb-config

14):  touch server.conf

以上在/usr/local 创建好mongodb的文件夹,结构为:

/usr/local/

--mongodb

  --data

    ---db : 存放数据文件

  --log

    --logs : 存放日志文件

 --mongodb-config

   --server.conf 存放mongodb配置

最后:将解压包移动到指定目录

mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 将解压包拷贝到指定目录

 

设置防火强

1):  cd /

2):   /sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT

3):   /etc/rc.d/init.d/iptables save

4):   /etc/init.d/iptables restart

5):   /etc/init.d/iptables status

开启mongodb服务

这里有两种启动方式

a: 直接敲命令

1):  cd /usr/local/mongodb/bin

2):  ./mongod -dbpath=/usr/local/mongodb/data/db -logpath=/usr/local/mongodb/log/logs --fork

 

b: 配置文件的方式启动

1):  cd/usr/local/mongodb

2):
  [root@gitlab mongodb]# vi mongodb-config/server.conf
       logpath=/usr/local/mongodb/log/logs
       logappend=true
       dbpath=/usr/local/mongodb/data/db
       fork=true
       bind_ip=0.0.0.0
       port=27017

      参数解释: --dbpath 数据库路径(数据文件)

--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
--logappend 日志文件末尾添加
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)

3):  ./bin/mongod -f  mongodb-config/server.conf

注意 bind_ip=0.0.0.0 这项设置是为 本地连接远程 做准备

     fork参数指定后台运行方式,关闭窗口mongodb服务不停止,false或不写该参数则为窗口模式,必须打开保持窗口打开状态才行。

再通过本地窗口链接

MongoDB默认设置为无权限访问限制,上面我们也没有进行特殊的认证配置,所以可以直接链接

通过命令 :  mongo IP地址:端口,即可远程登录服务器了(可以配置mongo的bin目录的环境变量,方便调用客户端程序)

 

至此,mongodb服务器已经安装配置完毕,并实现了远程访问。

 

账号权限设置篇

实战应用中,我们一般都会指定MongoDB的账户和权限,提供安全性。

首先,先建立账号 授权

1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local。

2. 输入命令:use admin,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户表,用来存放超级管理员的,那我们就往它里面添加一个超级管理员试试看

3.输入命令:db.createUser({user:"admin",pwd:"123456",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]})

4. 输入命令:show collections,查看该库下所有的表,你会发现,MongoDB并没有提示你输入用户名、密码,那就奇怪了,这是怎么回事呢?在文章最开始提到了,

MongoDB默认设置为无权限访问限制,即然这样,那我们就先把它设置成为需要权限访问限制。

5.修改我们前面配置的mongdb配置文件mongodb.conf

       [root@gitlab mongodb]# vi mongodb-config/server.conf
       logpath=/usr/local/mongodb/log/logs
       logappend=true
       dbpath=/usr/local/mongodb/data/db
       fork=true
       bind_ip=0.0.0.0
       port=27017
       auth=true  #添加这句即为开通账号认证
6.通过命令 ps -ef|grep mongo 查看mongo的进程号,然后kill  9472 ,

重启mongod服务,命令: ./bin/mongod -f  mongodb-config/server.conf

 

7. 远程连接mongo服务器,

   切换到admin数据库: use admin

   然后输入命令:db.auth('admin','123456'),输出一个结果值为1,说明这个用户匹配上了,如果用户名、密码不对,会输入0

8. 输入命令:show collections,呵呵,结果出来了,到这里,权限设置还只讲到一多半,接着往下讲

9. use mybook 切换到mybook数据库,接下来为该数据库建立账号

db.createUser({user:'test', pwd:'123456',roles:[{role:'readWrite', db:'mybook'}]})

10. 输入ctrl+c,退出之前的账号admin

11.输入命令:db.auth('test','123456'),输出结果1,用户存在,验证成功

12)远程直接访问对应的数据库方式,mongo 192.168.220.128:27017/mybook -u test -p 123456,如下图

当然,也可以先连接到mongo服务器,再切换数据库,最后通过db.auth('用户名',‘密码’) 的方式连接到对应的数据库,如下图

 

至此,账号分配已经全部完成。

 常用命令篇

若数据库出现如不能连上,则是一个data目录下的mongod.lock文件的问题,可以用如下的修复的命令,
mongod --repair

show users 显示用户

db 显示当前数据库

db.system.users.find()  显示所有用户

db.auth('username','password') 用户登录

java 调用篇

http://www.runoob.com/mongodb/mongodb-java.html

http://www.yiibai.com/mongodb/mongodb_java.html

参考

http://blog.csdn.net/qq_26677157/article/details/60960333

http://www.cnblogs.com/zengen/archive/2011/04/23/2025722.html

http://www.cnblogs.com/PheonixHkbxoic/p/5665499.html

posted on 2017-10-25 16:19  邹阳  阅读(322)  评论(0编辑  收藏  举报