设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站已关闭,不再开放。PC时代已远逝,拥抱云原生时代,拥抱k8s,请移步:https://www.v2k8s.com

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 7180|回复: 9

[NOSQL] MongoDB的安装和基本配置 [复制链接]

Rank: 8Rank: 8

签到
246
注册时间
2010-6-18
最后登录
2017-11-29
在线时间
162 小时
阅读权限
90
积分
21095
帖子
137
主题
15
精华
1
UID
9568
发表于 2011-5-25 15:59:25 |显示全部楼层
本帖最后由 spitfire00 于 2011-5-25 16:13 编辑

MongDB的简介我就不多说了,请看置顶贴:falconNoSQL数据库定期汇总我将整近几个月学习和维护MongoDB的经验给大家分享一下,整理的文档陆续贴出,先贴一下MongoDB的安装基本配置

******************************
MongoDB的安装和基本配置
******************************

===================
下载 & 安装
===================

下载地址:http://www.mongodb.org/downloads

# 下载
  wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.8.1.tgz

# 解压到指定路径
  tar zxvf mongodb-linux-x86_64-1.8.1.tgz -C /usr/local/

# 更改名称
  cd /usr/local
  mv mongodb-linux-x86_64-1.8.1 mongodb

# 建立软连接  
  ln -s /usr/local/mongodb/bin/* /usr/local/sbin/

===================
启动 & 停止
===================

# 基本的启动操作
  mongod

# 建立数据库存放目录
  mkdir /data/mongodb

# 启动MongoDB,指定数据库路径和log
  mongod --dbpath=/data/mongodb --logpath=/data/mongodb/mongodb.log --logappend &

# 关闭MongoDB (禁止使用 -9 参数关闭进程)
  kill -15 `cat /data/mongodb/mongod.lock`

# 或者客户端登陆后使用关闭命令
  mongo
  > use admin
  > db.shutdownServer();

# 测试,28017为默认http访问端口

  * 本机测试
   curl localhost:28017

  * 在浏览器地址栏访问http://192.168.0.100:28017

===================
MongoDB的配置文件
===================   

# 除了启动时接受命令行参数,MongoDB也可以配置使用一个配置文件,可以以指定使用 -f 或 --config 命令行选项。
  mongod -f /usr/local/mongodb/conf/mongod.conf

# 配置文件范例
  cat /usr/local/mongodb/conf/mongod.conf
-----------------------------------------------------------------------
# This is an example config file for MongoDB.
dbpath = /data/mongodb                             # 指定数据库路径
logpath = /data/mongodb/mongodb.log      # 日志路径
logappend = true                                          # 以追加的方式写日志

port = 27017                                                # 指定端口号,默认27017
fork = true                                                    # 以子进程方式运行
auth = true                                                   # 增加验证选项


Rank: 8Rank: 8

注册时间
2010-12-28
最后登录
2015-2-6
在线时间
216 小时
阅读权限
90
积分
22788
帖子
177
主题
34
精华
0
UID
11616
发表于 2011-5-25 16:12:39 |显示全部楼层
职业帮顶 支持~

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-18
最后登录
2012-7-19
在线时间
102 小时
阅读权限
90
积分
5606
帖子
44
主题
3
精华
0
UID
10652
发表于 2011-5-25 16:47:53 |显示全部楼层
附上用php写的一个mongo管理工具,类似mysql的phpmyadmin
http://code.google.com/p/rock-php/wiki/rock_mongo_zh
已有 1 人评分积分 收起 理由
NetSeek + 12 很赞!

总评分: 积分 + 12   查看全部评分

使用道具 举报

Rank: 8Rank: 8

注册时间
2008-8-8
最后登录
2014-6-22
在线时间
404 小时
阅读权限
90
积分
73727
帖子
220
主题
43
精华
0
UID
192
发表于 2011-5-25 17:16:51 |显示全部楼层
支持,顶一下

使用道具 举报

Rank: 7Rank: 7Rank: 7

注册时间
2008-9-20
最后登录
2019-9-2
在线时间
489 小时
阅读权限
100
积分
38065
帖子
2202
主题
48
精华
0
UID
307

LT元老

发表于 2011-5-25 22:21:39 |显示全部楼层
支持!
话说bsddb也挺不错的!

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-1-14
最后登录
2014-8-7
在线时间
126 小时
阅读权限
90
积分
13184
帖子
245
主题
33
精华
0
UID
11752
发表于 2011-10-25 15:02:37 |显示全部楼层
本帖最后由 灰大狼 于 2011-10-25 15:10 编辑

nginx + gridfs 实现图片的分布式存储
===============
http://www.cnblogs.com/zhangmiao ... /05/05/2038285.html
===============
1、前期准备

sudo yum -y install pcre-devel openssl-devel GeoIP-devel zlib-devel

   

2、下载nginx-gridfs源码,并将mongodb-mongo-c-driver源码添加到nginx-gridfs/mongo-c-driver中

# 这里注意一下,mongo-c-driver要单独下载的!


3、安装nginx,指定nginx-gridfs目录与nginx联合编译

wget http://nginx.org/download/nginx-1.0.1.tar.gz

tar –zxvf nginx-1.0.1.tar.gz

cd nginx-1.0.1

./configure --prefix=/usr/local/nginx  --add-module=/home/cdh/Downloads/mdirolf-nginx-gridfs

make –j8

sudo make install –j8

   

4、安装mongodb并启动

wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.1.tgz

tar –xvf mongodb-linux-i686-1.8.1.tgz

sudo mv mongodb-linux-i686-1.8.1 /usr/local/mongodb

sudo mkdir –p /tmp/mongodb/data

/usr/local/mongodb/bin/mongod --dbpath /tmp/mongodb/data --logpath /tmp/mongodb/data/log.log –fork

   

5、配置nginx-gridfs

sudo vim /usr/local/nginx/conf/nginx.conf

location /pics/ {

    gridfs pics

              field=filename

              type=string;

    mongo 127.0.0.1:27017;

}

gridfs:nginx识别插件的关键字

pics:db名

[root_collection]: 选择collection,如root_collection=blog, mongod就会去找blog.files与blog.chunks两个块,默认是fs

[field]:查询字段,保证mongdb里有这个字段名,支持_id, filename, 可省略, 默认是_id

[type]:解释field的数据类型,支持objectid, int, string, 可省略, 默认是int

[user]:用户名, 可省略

[pass]:密码, 可省略

mongo:mongodb url

   

6、上传图片

sudo /usr/local/mongodb/bin/mongofiles put d pics  --type jpg /root/photo.jpg

   

7、启动nginx

sudo /usr/local/nginx/sbin/nginx

在浏览器里输入http://localhost/pics/photo.jpg 能下载图片就说明成功了

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-1-14
最后登录
2014-8-7
在线时间
126 小时
阅读权限
90
积分
13184
帖子
245
主题
33
精华
0
UID
11752
发表于 2011-10-25 15:03:21 |显示全部楼层
MongoDB增加用户认证: 增加用户、删除用户、修改用户密码、读写权限、只读权限
===================================================
http://hi.baidu.com/ixigua/blog/ ... 5f4b23b83820fc.html
===================================================
开启客户端;
> use admin
> db.addUser("ixigua", "hi.baidu")
> db.auth("ixigua", "hi.baidu")

查看已存在的用户的命令:
> db.system.users.find()

现在,来给另一个数据库virusDB 配置一个读写权限的用户
> use virusDB
> db.addUser("virus", "passwordForVirus")

配置一个只读权限的用户. (only supported in 1.3.2+)
> use db_ixigua
> db.addUser("guest", "passwordForReadonly", true)

更改密码
利用 addUser 命令来更改一个已存在用户的密码
> use db_ixigua
> db.addUser("guest", "change_passwordForReadonly", true)
利用下面的命令可以看到刚才创建的两个用户
> db.system.users.find()

删除用户的命令
db.system.users.remove( { user: username } )
> db.system.users.remove( {user:"guest"} );

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-1-14
最后登录
2014-8-7
在线时间
126 小时
阅读权限
90
积分
13184
帖子
245
主题
33
精华
0
UID
11752
发表于 2011-10-25 15:11:01 |显示全部楼层
本帖最后由 灰大狼 于 2011-10-25 15:19 编辑

MongoDB常用的操作命令
2010-07-03 16:13

    超级用户相关:
        use admin
        #增加或修改用户密码
        db.addUser(ixigua,'pwd')
        #查看用户列表
        db.system.users.find()
        #用户认证
        db.auth(ixigua,'pwd')
        #删除用户
        db.removeUser('mongodb')
        #查看所有用户
        show users
        #查看所有数据库
        show dbs
        #查看所有的collection
        show collections
        #查看各collection的状态
        db.printCollectionStats()
        #查看主从复制状态
        db.printReplicationInfo()
        #修复数据库
        db.repairDatabase()
        #设置记录profiling,0=off 1=slow 2=all
        db.setProfilingLevel(1)
        #查看profiling
        show profile
        #拷贝数据库
        db.copyDatabase('mail_addr','mail_addr_tmp')
        #删除collection
        db.mail_addr.drop()
        #删除当前的数据库
        db.dropDatabase()
    客户端连接
        /usr/local/mongodb/bin/mongo 8.8.88/ixigualib -u ixigua -p 'pwd'
    增删改
        #存储嵌套的对象
        db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
        #存储数组对象
        db.user_addr.save({'Uid':'yushunzhi@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']})
        #根据query条件修改,如果不存在则插入,允许修改多条记录
        db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
        #删除yy=5的记录
        db.foo.remove({'yy':5})
        #删除所有的记录
        db.foo.remove()
    索引
        #增加索引:1(ascending),-1(descending)
        db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
        #索引子对象
        db.user_addr.ensureIndex({'Al.Em': 1})
        #查看索引信息
        db.deliver_status.getIndexes()
        db.deliver_status.getIndexKeys()
        #根据索引名删除索引
        db.user_addr.dropIndex('Al.Em_1')
   查询
        #查找所有
        db.foo.find()
        #查找一条记录
        db.foo.findOne()
        #根据条件检索10条记录
        db.foo.find({'msg':'Hello 1'}).limit(10)
        #sort排序
        db.deliver_status.find({'From':'ixigua@sina.com'}).sort({'Dt',-1})
        db.deliver_status.find().sort({'Ct':-1}).limit(1)
        #count操作
        db.user_addr.count()
        #distinct操作
        db.foo.distinct('msg')
        #>操作
        db.foo.find({"timestamp": {"$gte" : 2}})
        #子对象的查找
        db.foo.find({'address.city':'beijing'})
    管理
        #查看collection数据的大小
        db.deliver_status.dataSize()
        #查看colleciont状态
        db.deliver_status.stats()
        #查询所有索引的大小
        db.deliver_status.totalIndexSize()

http://hi.baidu.com/ixigua/blog/ ... cf8cc9b645ae84.html

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-6-16
最后登录
2018-4-20
在线时间
448 小时
阅读权限
90
积分
46645
帖子
262
主题
33
精华
0
UID
14420
发表于 2011-10-26 17:31:52 |显示全部楼层
这个帖子内容很丰富啊,多谢楼主,多谢各位

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-3-31
最后登录
2018-6-18
在线时间
697 小时
阅读权限
90
积分
135141
帖子
408
主题
59
精华
1
UID
2237
发表于 2012-7-17 15:03:42 |显示全部楼层
灰大狼 发表于 2011-10-25 15:11
MongoDB常用的操作命令
2010-07-03 16:13

这个不错啊!!!!!!!!!!!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2021-3-7 19:21 , Processed in 0.025749 second(s), 15 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部