计划:
装一个虚机,ubuntu吧,14.04 Trusty Tahr。
安装MongoDB

网络资源:
http://mirrors.aliyun.com/ubuntu-releases/14.04/ubuntu-14.04-server-amd64.iso.torrent(公网)
http://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/14.04/ubuntu-14.04-server-amd64.iso.torrent(教育网)
http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz

虚拟机:
处理器数量1:内核数:1(多核对MongoDB帮助不大);MM 1G(RAM瓶颈应该会出现);HD 20G。 
安装Unbuntu,用户名:gd,密码:cgdc。
TO小超超,服务器在1.4.3x,一起玩儿吧。

安装指导:

http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

由于Ubuntu官方APT源里的MongoDB版本比较旧,这里用MongoDB提供的APT源进行安装。
要使用第三方源上的软件,除了在sources.list上添加对应的源外,还要有增加相应的公钥Key才能正确安装软件。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update

sudo apt-get install mongodb-org
报错:unable to locate package
sudo apt-get install mongodb就可以,可能版本会老一点,无所谓吧。
要更新的包包括:libboost、libc、libgcc、mongodb、mongodb-clients、mongodb-dev、mongodb-server。
一共38个,下载41.5M,90多K,速度还好,可以先去看会儿书了。
下载到一半,断了。
F!
弃用apt。
sudo apt-get install openssh-server
这个很快。
用“netstat -tlp”或“ps -e | grep ssh”确认sshd启动。
http://www.cnblogs.com/chen1987lei/archive/2010/12/02/1894768.html
解压后得到一堆二进制可执行文件,除了bsondump其他都是mongo打头的。拷贝到 /usr/bin 下面。
chmod a+x 
到此,装好。

/*
如果安装特定版本:
apt-get install mongodb-org=2.6.1 mongodb-org-server=2.6.1 mongodb-org-shell=2.6.1 mongodb-org-mongos=2.6.1 mongodb-org-tools=2.6.1
禁用自动升级:
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

运行:
sudo /etc/init.d/mongod start
sudo /etc/init.d/mongod stop
sudo /etc/init.d/mongod restart
*/

启动,报错,说dbpath不存在,需要手动创建目录。
创建了 /data/mongodb1 目录。
启动的时候加--dbpath。

启动没有报错,但忘了 --fork方式启动了。
还好,可以ssh连。

报错:sda1:WRITE SAME faild.Manually zeroing.没有修改配置,后来没见过这个问题了。为什么呢?
数据目录没开写权限?sudo启动服务器都不行?
kill  [pid]
use admin
db.shutdownServer()

启动config:
启动选项很多,每次在命令行敲麻烦死了,写在config文件里吧。
选项包括:
--port
--fork(以守护进程方式执行)
--logpath
--config
配置文件写法:
port = 110271
fork = true
logpath = mongodb.log

无论如何,进入Shell了。
敲help,先爽一下吧。

> help

db.help()                    help on db methods
        db.mycoll.help()             help on collection methods
        sh.help()                    sharding helpers
        rs.help()                    replica set helpers
        help admin                   administrative help
        help connect                 connecting to a db help
        help keys                    key shortcuts
        help misc                    misc things to know
        help mr                      mapreduce

show dbs                     show database names
        show collections             show collections in current database
        show users                   show users in current database
        show profile                 show most recent system.profile entries with time >= 1ms
        show logs                    show the accessible logger names
        show log [name]              prints out the last segment of log in memory, 'global' is default
        use <db_name>                set current database
        db.foo.find()                list objects in collection foo
        db.foo.find( { a : 1 } )     list objects in foo where a == 1
        it                           result of the last line evaluated; use to further iterate
        DBQuery.shellBatchSize = x   set default number of items to display on shell
        exit                         quit the mongo shell

如果是方法,敲上括号是调用,不敲括号,输出方法原型。

客户端Shell:
运行./mongo既可以启动Shell对mongodb进行管理。
Shell使用Javascipt语法,可以对数据进行管理,可以对数据库进行管理。
官网版本:http://try.mongodb.org/。 可以上手玩玩。
很简单,没什么可说的。

创建个数据库吧:

> use cgdc
switched to db cgdc
> show collections
> show dbs
admin  (empty)
cgdc   (empty)
local  0.078GB
> db.users.help()
DBCollection help
        db.users.find().help() - show DBCursor help
        db.users.count()
        db.users.copyTo(newColl) - duplicates collection by copying all documents to newColl; no indexes are copied.
        db.users.convertToCapped(maxBytes) - calls {convertToCapped:'users', size:maxBytes}} command
        db.users.dataSize()
        db.users.distinct( key ) - e.g. db.users.distinct( 'x' )
        db.users.drop() drop the collection
        db.users.dropIndex(index) - e.g. db.users.dropIndex( "indexName" ) or db.users.dropIndex( { "indexKey" : 1 } )
        db.users.dropIndexes()
        db.users.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups
        db.users.reIndex()
        db.users.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
                                                      e.g. db.users.find( {x:77} , {name:1, x:1} )
        db.users.find(...).count()
        db.users.find(...).limit(n)
        db.users.find(...).skip(n)
        db.users.find(...).sort(...)
        db.users.findOne([query])
        db.users.findAndModify( { update : ... , remove : bool [, query: {}, sort: {}, 'new': false] } )
        db.users.getDB() get DB object associated with collection
        db.users.getPlanCache() get query plan cache associated with collection
        db.users.getIndexes()
        db.users.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )
        db.users.insert(obj)
        db.users.mapReduce( mapFunction , reduceFunction , <optional params> )
        db.users.aggregate( [pipeline], <optional params> ) - performs an aggregation on a collection; returns a cursor
        db.users.remove(query)
        db.users.renameCollection( newName , <dropTarget> ) renames the collection.
        db.users.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name
        db.users.save(obj)
        db.users.stats()
        db.users.storageSize() - includes free space allocated to this collection
        db.users.totalIndexSize() - size in bytes of all the indexes
        db.users.totalSize() - storage allocated for all data and indexes
        db.users.update(query, object[, upsert_bool, multi_bool]) - instead of two flags, you can pass an object with fields: upsert, multi
        db.users.validate( <full> ) - SLOW
        db.users.getShardVersion() - only for use with sharding
        db.users.getShardDistribution() - prints statistics about data distribution in the cluster
        db.users.getSplitKeysForChunks( <maxChunkSize> ) - calculates split points over all chunks and returns splitter function
        db.users.getWriteConcern() - returns the write concern used for any operations on this collection, inherited from server/db if set
        db.users.setWriteConcern( <write concern doc> ) - sets the write concern for writes to the collection
        db.users.unsetWriteConcern( <write concern doc> ) - unsets the write concern for writes to the collection

> db.users.save({name:"liuhailong",hometown:"Hebei"});
WriteResult({ "nInserted" : 1 })
> show dbs;
admin  (empty)
cgdc   0.078GB
local  0.078GB
> db.cgdc.users.find()
> ;
> cgdc.users.find()
2014-05-17T03:14:37.528-0700 ReferenceError: cgdc is not defined
> db.users.find()
{ "_id" : ObjectId("5377366b70e0a3f0e2e28f91"), "name" : "liuhailong", "hometown" : "Hebei" }
>

HOHO

安全和权限:
use [databasename]
db.addUser(username,pwd,isReadOnly);

> use admin
switched to db admin
> db.addUser("gd","cgdc");
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "gd", "roles" : [ "root" ] }
> use cgdc
switched to db cgdc
> db.createUser("cgdc","cgdc");
2014-05-17T03:17:58.058-0700 Error: couldn't add user: no such cmd: 0 at src/mongo/shell/db.js:1004
> db.addUser("cgdc","cgdc");
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "cgdc", "roles" : [ "dbOwner" ] }
> db.createUser().help()
2014-05-17T03:19:16.032-0700 TypeError: Cannot read property 'user' of undefined at src/mongo/shell/db.js:979
> db.createUser
function (userObj, writeConcern) {
    var commandExisted = this._createUser(userObj, writeConcern);
    if (!commandExisted) {
        throw Error("'createUser' command not found.  This is most likely because you are " +
                    "talking to an old (pre v2.6) MongoDB server");
    }
}
> db.addUser("cgdc_readonly","cgdc",true);
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "cgdc_readonly", "roles" : [ "read" ] }
>

--fork 运行,一定要指定logpath --

启动服务器时,加 --auth 选项。

gd@ubuntu:~$ sudo /usr/bin/mongo 
MongoDB shell version: 2.6.1
connecting to: test
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
> show dbs
2014-05-17T03:24:14.308-0700 listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13
} at src/mongo/shell/mongo.js:47
>

登录操作:
db.auth(username,pwd)

登录不成功,去掉--auth选项重新连。
> db.system.users.find()
{ "_id" : "admin.gd", "user" : "gd", "db" : "admin", "credentials" : { "MONGODB-CR" : "d41a08d27097c5b67823dfdd85e9494d" }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
{ "_id" : "cgdc.cgdc", "user" : "cgdc", "db" : "cgdc", "credentials" : { "MONGODB-CR" : "714ab4fd93e3012475de54246a444516" }, "roles" : [ { "role" : "dbOwner", "db" : "cgdc" } ] }
{ "_id" : "cgdc.cgdc_readonly", "user" : "cgdc_readonly", "db" : "cgdc", "credentials" : { "MONGODB-CR" : "c1a9ebbe08d3d0a27a33bd0435ee86f1" }, "roles" : [ { "role" : "read", "db" : "cgdc" } ] }

删掉重来:
> db.system.users.remove();
2014-05-17T03:33:45.736-0700 remove needs a query at src/mongo/shell/collection.js:299
> db.system.users.remove({});
WriteResult({ "nRemoved" : 3 })
> db.system.users.find();
>

删除用户:
db.system.users.remove({"user":username});

这次语法是这样:
use admin
db.createUser( {
user: "admin",
pwd: "cgdc",
roles: [ { 
role: "userAdminAnyDatabase", 
db: "admin" 
} ]
}
);
db.createUser( {
user: "root",
pwd: "cgdc",
roles: [ { role: "root", db: "admin" } ]
}
);
use cgdc
db.createUser({
user: "cgdc",
pwd: "cgdc",
roles:[{
role: "dbOwner",
db: "cgdc"
}]
}
);

真难用!!
试试看

gd@ubuntu:~$ sudo /usr/bin/mongo -u admin -p
MongoDB shell version: 2.6.1
Enter password: 
connecting to: test
2014-05-17T03:43:55.825-0700 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed
gd@ubuntu:~$ sudo /usr/bin/mongo -u cgdc -p
MongoDB shell version: 2.6.1
Enter password: 
connecting to: test
2014-05-17T03:44:10.909-0700 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed
gd@ubuntu:~$ sudo /usr/bin/mongo
MongoDB shell version: 2.6.1
connecting to: test
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
> db.auth("cgdc","cgdc");
Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }
0
>

还是不行。
看看日志。

晕死,日志里说,test数据库不是你想连,想连就能练。 当然啊,没有给test加用户。

连cgdc库

> use cgdc
switched to db cgdc
> db.auth("cgdc","cgdc");
1
>

遇到问题多看日志!!!

其他安全考虑:
--bindip localhost
--noscripting (禁止服务器端JavaScript执行)
--nohttpinterface
传输加密(SSH隧道)

先到这里吧。

转载于:https://www.cnblogs.com/liuhailong2008/p/4055268.html

【MongoDB】2、安装MongoDB 2.6.1 on Unbuntu 14.04(学习流水账)相关推荐

  1. linux使用权限模式启动mongodb,Linux安装MongoDB启动及常见问题解决

    MongoDB安装过程以及问题记录 一.MongoDB安装 下载MongoDB 官方地址: 可能需要注册一下我这里是Centos7系统所以选择的是RHEL7.0的TGZ,其他系统自行选择 如果不想注册 ...

  2. (翻译) MongoDB(7) 安装MongoDB

    本部分主要包含 MongoDB 的安装教程. 支持的平台 平台 3.2 3.0 2.6 2.4 2.2 Amazon Linux ✓ ✓ ✓ ✓ ✓ Debian 7 ✓ ✓ ✓ ✓ ✓ Fedora ...

  3. 安装MongoDB(做成Windows服务)并加载C#驱动程序

    一 Mongodb简介: 通过查询网上的一些信息来介绍一下Mongodb的优势:MongoDB是一个面向文档的数据库,目前由10gen开发并维护,它的功能丰富,齐全,完全可以替代MySQL.在使用Mo ...

  4. Windows中安装MongoDB以及studio3t

    文章目录 1.安装MongoDB 2.配置并启动MongoDB 3.使用studio3t连接mongodb 1.安装MongoDB 运行 mongodb-win32-x86_64-2008plus-s ...

  5. CentOS 7上安装 MongoDB数据库 4.0.0最新版

    MongoDB简介 MongoDB(来自于英文单词"Humongous",中文含义为"庞大")是可以应用于各种规模的企业.各个行业以及各类应用程序的开源数据库. ...

  6. centOS下mongodb的安装

    ###############centOS下mongodb的安装######### mongodb作为非关系型数据库NoSQL数据库的一种,并且是属于免安装类型. mongodb安装说明:32的安装d ...

  7. Mac安装MongoDB(极简)

    Mac安装MongoDB MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写. MongoDB也是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系 ...

  8. Win7安装mongodb完整版(包含可能遇到的问题)

    1.下载mongodb:链接:mongodb3.4.9 密码: dbkw.这里我给出的是mongodb3.4.9版本,如果想要其他版本可以去mongodb官网下载.安装过程大概都一样. 2.双击安装 ...

  9. Linux 安装MongoDB数据库及命令使用

    从0学习mongodb4运维与开发-学习视频教程-腾讯课堂https://ke.qq.com/course/3854528?saleToken=2635699&from=pclink 一.li ...

最新文章

  1. python filter函数
  2. ubuntu14.6 密码重置_已迁移
  3. jQuery同步Ajax带来的UI线程阻塞问题及解决办法
  4. linux基本操作命令(centos)
  5. html中metaf属性ormat-detection的意义
  6. Maven学习总结(12)——eclipse中构建多模块maven项目
  7. 开发LED屏幕页面遇到的问题
  8. html邮箱留言板代码,求HTML留言板代码或模板?
  9. oracle normal索引类型,Oracle中有多少种索引类型?
  10. 安卓手机Mqtt调试工具 ESP8266 mqtt服务器
  11. python爬虫和java爬虫哪个好_应用数据下载
  12. 15个搞笑的程序员段子
  13. mysql报错:1264-Out of range value for column ‘字段‘ at row 1
  14. Mac电脑查看本机的mac地址和ip地址
  15. jQuery使用ajaxSubmit()提交表单示例(转)
  16. 初学orCAD原理图
  17. 企业如何防止激光打印机泄密?
  18. linux:redis安装、报错 oO0OoO0OoO0Oo
  19. IOS H5免签绿标 webclip
  20. 项目管理(PMP)项目相关方管理

热门文章

  1. sql添加,修改数据及删除表,表约束、字段及数据
  2. nagios学习笔记(二)
  3. php insert Oracle clob 字段处理问题
  4. IBATISNETNET 1.3 开发指南系列文章
  5. html+下拉箭头样式,HTML选择下拉箭头样式
  6. mysql数据库 quota_shell脚本抓取用户存储quota写道mysql并展现到grafana面板
  7. python json转换字典_Python json转字典字符方法实例解析
  8. 台式电脑计算机无法启动 启动修复,遇到计算机无法启动时,该怎么修复?
  9. python内置库绘制33角形_33 python format练习题 利用format方法生成一个星号三角形...
  10. CORS 跨域-哪些操作不受同源限制