标签:str border cell seve std 位置 yum源 tables nal
mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。
存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary JSON)。
模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。
MongoDB安装很简单,基本无需安装,安装包解压后即可使用。
|
1
2
3
4
|
# curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.7.tgz# tar -zxvf mongodb-linux-x86_64-3.0.7.tgz# mkdir -p mongodb# cp -R -n mongodb-linux-x86_64-3.0.7/ mongodb |
|
1
|
# mkdir -p /data/mongodb |
命令行指定数据目录启动
|
1
|
# mongod --dbpath /data/mongodb --logpath /var/log/mongodb.log |
指定配置文件启动
|
1
|
# mongod -f /etc/mongod_27019.conf |
|
1
|
# mongod -f /etc/mongod_27019.conf --shutdown |
本文例子是在Cent OS 7上进行安装,mongoDB版本是3.0
|
1
2
3
4
5
6
|
# vi /etc/yum.repos.d/mongodb-org-3.0.repo[mongodb-org-3.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/gpgcheck=0enabled=1 |
|
1
|
# yum install -y mongodb-org |
|
1
|
# systemctl start mongod |
设定文件位置:/etc/mongod.conf
数据库路径:/var/lib/mongo
|
1
|
WARNING: Readahead for /var/lib/mongo is set to 4096KB |
1. 日志里出现上面的信息,需要调整Readahead的大小
|
1
2
3
|
# blockdev --report# blockdev --setra 256 /dev/sda# blockdev --setra 256 /dev/dm-1 |
2. 日志里出现下面信息,需要修改内核参数
|
1
|
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always‘. |
关闭透明大页
|
1
2
|
echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag |
3. Cent OS 7上需要把mongoDB添加到systemd,否则会出现下面的错误
|
1
|
systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database.. |
将mongoDB添加到systemd
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# vi /usr/lib/systemd/system/mongod.service[Unit]Description=mongodb database[Service]User=mongodGroup=mongodEnvironment="OPTIONS=--quiet -f /etc/mongod.conf"ExecStart=/usr/bin/mongod $OPTIONS runPIDFile=/var/run/mongodb/mongod.pid[Install]WantedBy=multi-user.target |
建立链接
|
1
|
# ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/ |
重新加载systemctl
|
1
|
# systemctl daemon-reload |
设定文件 /etc/mongod.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
processManagement: fork: truenet: bindIp: 127.0.0.1 port: 27017storage: dbPath: /srv/mongodbsystemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: journal: enabled: true |
processManagement.fork: true 以daemon模式启动mongod
net.bindIp: 指定IP,逗号分隔,注释掉的情况下,服务启动在0.0.0.0
systemLog.quiet: true 日志输出使用quiet模式,只输出critical
storage.dbPath: 指定数据的存放位置
replication.replSetName: 副本集的名字
security.authorization: enabled 使用认证
security.keyFile: 使用keyFile
verbosity: 日志开启debug模式,0-5
operationProfiling.slowOpThresholdMs: slowlog设定,默认100
net.http.RESTInterfaceEnabled: rest接口是否有效
net.maxIncomingConnections: 最大连接数,默认65536,不能超过系统设置,# ulimit -n
下面列出一些使用mongoDB的常用命令,其他还有很多,详细参照官方文档
|
1
|
# mongo |
|
1
|
> show dbs |
|
1
|
> use new2 |
|
1
2
|
> show collections> show tables |
|
1
|
> db.stats() |
|
1
|
> db.user.insert({"username":"test1","age":12,"sex":"m"}) |
查找集合中所有数据
|
1
|
> db.user.find() |
指定条件查找数据
|
1
2
|
> db.user.find({age: {$gt: 10}});> db.user.find({sex: /m/}); |
|
1
|
> db.user.count() |
指定条件统计数据
|
1
|
> db.user.count({sex: "m"}); |
|
1
|
> db.user.remove({age: 12}); |
|
1
|
> db.user.drop() |
|
1
|
> db.copyDatabase("new2", "new3", "127.0.0.1"); |
|
1
|
> db.dropDatabase(); |
|
1
|
> db.repairDatabase() |
|
1
2
|
> use admin> db.shutdownServer() |
|
1
2
|
> help> db.help() |
|
1
2
3
4
5
|
# vi /etc/mongod.confnet: port: 27017 http: enabled: true |
http://IP:28017/
本文只是初步学习一下mongoDB的安装和使用,副本集,分片等功能,接下来会进行介绍。
标签:str border cell seve std 位置 yum源 tables nal
原文地址:https://www.cnblogs.com/landv/p/12074677.html