Linux下MongoDB的入门安装、配置与启动

Linux下MongoDB的入门安装、配置与启动

mongo非关系性数据库 查询性能好,数据性不是特别重要的情况下使用

[root@test ~]# tar xf mongodb-linux-x86_64-rhel70-5.0.7.tgz
[root@test ~]# mv mongodb-linux-x86_64-rhel70-5.0.7 /usr/local/mongodb
[root@test ~]# cd /usr/local/mongodb
[root@test mongodb]# ls
bin  LICENSE-Community.txt  MPL-2  README  THIRD-PARTY-NOTICES
[root@test mongodb]# mkdir data logs
[root@test mongodb]# touch /usr/local/mongodb/logs/mongodb.log
[root@test mongodb]# vim /etc/mongodb.conf
dbpath=/usr/local/mongodb/data				#数据库路径
logpath=/usr/local/mongodb/logs/mongodb.log			#MongoDB日志文件
logappend=true			# 使用追加的方式写日志
port=27017			#端口号
bind_ip=0.0.0.0 #绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定则默认本地所有IP
fork=true # 以守护进程的方式运行MongoDB,创建服务器进程
#auth=true #启用用户验证

[root@test mongodb]# vim /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
[root@test mongodb]# source /etc/profile
[root@test ~]# mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 1094
child process started successfully, parent exiting

[root@test ~]# mongo
# MongoDB 自带的交互式 Javascript shell,用来对 MongoDB 进行操作和管理的交互式环境。
MongoDB shell version v5.0.7
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("cd90aabc-f30e-4ea7-be0d-76c6039ffab8") }
MongoDB server version: 5.0.7
================
> use admin;
switched to db admin
> db.createUser({user:'root', pwd:'123456', roles:[{role:'root', db:'admin'}]});
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}
> exit
bye
[root@test ~]# mongo
> use admin
switched to db admin
> db.createUser({ user: "test",pwd: "1234",customData:{name:"test"},roles:[{ role: "userAdminAnyDatabase",db: "admin" }]})
Successfully added user: {				//创建带密码的角色test
> db.auth('test','12345')
Error: Authentication failed.
0
> db.auth('test','1234')
1
> mongodb://test:1234@localhost/test          //使用用户名和密码连接登录到指定数据库
...

MongoDB

数据库创建删除

> use testdb				//如果数据库不存在,则创建数据库
switched to db testdb
> db				//当前库
testdb
> show dbs				//查看所有数据库,插入数据时才会显示创建的库
admin   0.000GB
config  0.000GB
local   0.000GB
> db.testdb.insert({"name":"dachui"})			//插入数据
WriteResult({ "nInserted" : 1 })
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
testdb  0.000GB				//新增的库
> use testdb				//选中库
switched to db testdb
> db.dropDatabase()			//删除库
{ "ok" : 1 }
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

集合创建删除

> use testdb
switched to db testdb
> db.createCollection("table")         //创建集合,注意区分大小写
{ "ok" : 1 }
> show collections				//查看集合
table
> use table				//使用集合
switched to db table

创建带有参数的 createCollection()

> db.createCollection("mycol",{capped:true,autoIndexId:true,size:10000,max:9999})
{
        "note" : "The autoIndexId option is deprecated and will be removed in a future release",
        "ok" : 1
}

可以是以下参数:

字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值,即字节数。 如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。
> use testdb
switched to db testdb
> show collections			//查看
table
> db.table.drop()			//删除集合table
true
> show collections

插入文档

> db.mycol.insert({name:"dachui",sex:"boy"})        //插入数据
WriteResult({ "nInserted" : 1 })
> show collections
mycol
> db.mycol.find()				//查看数据
{ "_id" : ObjectId("62676e80a3c1f22ef0404878"), "name" : "dachui", "sex" : "boy" }

Linux下Mongodb的主从配置

主从配置方法

1. 主机器(master)  192.168.1.11
2. 从机器(slave)  192.168.1.12
mongodb home: /usr/local/mongodb/
data file: /usr/local/mongodb/data
log file: /usr/local/mongodb/logs

3. 启动master
mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs
--master --oplogSize 64 --logappend  --port=27017 --fork

4. 启动slave
mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs
--slave --source 192.168.1.11 --only test --slavedelay 10
--logappend  --port=27017 --fork

互为主从

启动master
mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs   \
--master --slave --source 192.168.1.12   --logappend  --port=27017 --fork

启动slave
mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs   \
--master --slave --source 192.168.1.11 --only test --slavedelay 10    \
--logappend  --port=27017 --fork

测试
在主机器上添加数据
db.foo.save({"id":123456,"name":'dachui'});

在从服务器看数据:
db.foo.find({"id":123})

Replica Pairs的配置方法

master
cd /usr/local/mongodb/
./bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs\
--pairwith 192.168.1.11 --arbiter  --logappend  --port=27017 --fork

4. 启动slave
cd /usr/local/mongodb/
./bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs\
--pairwith 192.168.1.12 --arbiter  --logappend  --port=27017 --fork

三 参数解释
 参数解释: --dbpath 数据库路径(数据文件)
--logpath 日志文件路径
--master 指定为主机器
--slave 指定为从机器
--source 指定主机器的IP地址
--pologSize 命令行参数(与--master一同使用)配置用于存储给从节点可用的更新信息占用的磁盘空间(M为单位),如果不指定这个参数,默认大小为当前可用磁盘空间的5%(64位机器最小值为1G,32位机器为50M)。
--logappend 日志文件末尾添加
--port 启用端口号
--fork 在后台运行
--only 指定只复制哪一个数据库
--slavedelay 指从复制检测的时间间隔
--auth 是否需要验证权限登录(用户名和密码)

-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服务器

你可能感兴趣的:(mongodb,linux,数据库)