mongodb安装及配置
下载安装篇
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 数据库路径 (数据文件)
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('用户名',‘密码’) 的方式连接到对应的数据库,如下图
至此,账号分配已经全部完成。
常用命令篇
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