MongoDB的安装,是在是简单,解压就行了,纯绿色版:)打开http://www.mongodb.org/downloads,根据自己的操作系统,下载最新的合适自己的稳定版。例如解压到/usr/local/下,将目录名变更为mongodb。就安装完成。cd /usr/local/mongodb,./bin/mongod –help,可以大概看一下帮助。bin目录下,有十几个可执行文件,最常用的就是mongod,这个是mongodb启动脚本。现在就启动一下,
./mongod --fork --dbpath=/home2/mongodb_data --logpath=/home2/mongodb_data/mongodb.log --logappend --port=9601,
其中,–fork标示以创建子进程的方式运行,–dbpath是数据文件存储目录,目录需要实现建好,如果不设定此目录,默认会在安装目录下存储。logpath指日志存放目录,logappend标示日志以追加的方式写入。–port是mongodb监听端口,默认是27017 。好了,这样mongodb就启动起来了,当然,还有很多其他的参数,就看个人需要了。文章末尾,会将所有启动可选参数作为附件段落。
下边,本地连接到数据库,测试一下。
/usr/local/mongodb/bin/mongo --port=9601,
正常情况下,会看到成功提示,例如
connecting to: 127.0.0.1:9601/test type "help" for help,
mongodb中,数据库,依然叫数据库,但是数据表不叫表,叫集合(collection),记录成为文档。
show dbs;,
能看到所有的数据库,默认有test。use mytest,标示进入数据mytest,如果没有,会自动创建。
db.createCollection("pepole");,简单入门,其他更深度的,慢慢学习和研究。
show collections;//查看所有的集合。
db.pepole.insert({username:"xiaoming",age:22,email:"xiaoming@126.com"});//插入一条数据,所有的字段,都随意添加
db.pepole.find();//显示所有集合下的文档。
db.pepole.find({username:''xiaoming"});//显示所有文档中,username为xiaoming的文档。
mongodb对php提供了非常好的支持,还是打开http://www.mongodb.org/downloads,找到Drivers,下载php的扩展源代码,安装。完毕后,重启服务器,如果用php-fpm,也重启。这样就可以在php里,使用mongodb php api的函数了,例如
$connection = new Mongo("127.0.0.1:9601");,简单示例,更多的,一起学习。。
$db = $connection->selectDB('mytestdb');
$collection = $db->selectCollection('testtable');
$person = array(
'name' =>'xiaotian'.time(),
'email'=>'xiaotianok@126.com',
'gender' =>'man',
);
$safe_insert = true;
$collection->insert($person, $safe_insert);
$person_identifier = $person['_id'];。
Mongodb,也是支持IP限制,用户权限限制等一些常用的数据库权限设定。mongod --bind_ip 127.0.0.1 //设定某个IP链接,mongod --port 27017//指定端口,Mongod --auth//启动带用户验证模式,db.addUser('userx','psw');//设置用户名和密码,db.system.users.remove({'user':'userx'});//删除用户
主从复制,MongoDb也是支持的,下次再说。
PS一,mongod部分参数说明:
[root@izhoufeng mongodb]# ./bin/mongod --help
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations for more
Allowed options:
General options:
-h [ --help ] show this usage information
--version show version information
-f [ --config ] arg configuration file specifying additional options
--port arg specify port number
--bind_ip arg local ip address to bind listener - all local ips
bound by default
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--dbpath arg (=/data/db/) directory for datafiles 指定数据存放目录
--quiet quieter output 静默模式
--logpath arg file to send all output to instead of stdout 指定日志存放目录
--logappend appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件
--fork fork server process 以创建子进程的方式运行
--cpu periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况
--noauth run without security 无认证模式运行
--auth run with security 认证模式运行
--objcheck inspect client data for validity on receipt 检查客户端输入数据的有效性检查
--quota enable db quota management 开始数据库配额的管理
--quotaFiles arg number of files allower per db, requires --quota 规定每个数据库允许的文件数
--appsrvpath arg root directory for the babble app server
--nocursors diagnostic/debugging option 调试诊断选项
--nohints ignore query hints 忽略查询命中率
--nohttpinterface disable http interface 关闭http接口,默认是28017
--noscripting disable scripting engine 关闭脚本引擎
--noprealloc disable data file preallocation 关闭数据库文件大小预分配
--smallfiles use a smaller default file size 使用较小的默认文件大小
--nssize arg (=16) .ns file size (in MB) for new databases 新数据库ns文件的默认大小
--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式
--sysinfo print some diagnostic system information 打印系统诊断信息
--upgrade upgrade db if needed 如果需要就更新数据库
--repair run repair on all dbs 修复所有的数据库
--notablescan do not allow table scans 不运行表扫描
--syncdelay arg (=60) seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s
Replication options:
--master master mode 主复制模式
--slave slave mode 从复制模式
--source arg when slave: specify master as 当为从时,指定主的地址和端口
--only arg when slave: specify a single database to replicate 当为从时,指定需要从主复制的单一库
--pairwith arg address of server to pair with
--arbiter arg address of arbiter server 仲裁服务器,在主主中和pair中用到
--autoresync automatically resync if slave data is stale 自动同步从的数据
--oplogSize arg size limit (in MB) for op log 指定操作日志的大小
--opIdMem arg size limit (in bytes) for in memory storage of op ids指定存储操作日志的内存大小
Sharding options:
--configsvr declare this is a config db of a cluster 指定shard中的配置服务器
--shardsvr declare this is a shard db of a cluster 指定shard服务器
PS二,超级管理操作相关
use admin
#增加或修改用户密码
db.addUser('admin','pwd')
#查看用户列表
db.system.users.find()
#用户认证
db.auth('admin','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()