CentOS 安装配置 MongoDB

  上一个项目评审时认为非常适合使用MongoDB,但是由于没有使用经验和其他官僚原因没有使用,在此记录一下学习MongoDB的过程. 参考博客

1. 首先下载安装包

进入官网 https://www.mongodb.com/download-center

选择合适的版本,复制下方的下载链接,使用命令下载(此处下载mongodb-linux-x86_64-4.0.0.tgz)

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz

解压安装包

tar zxvf mongodb-linux-x86_64-3.2.9.tgz

2. 准备工作

移动并重命名文件夹到/usr/local

mv mongodb-linux-x86_64-4.0.0 /usr/local/mongodb

在文件夹中创建数据库,配置文件,日志文件

mkdir -p  /usr/local/mongodb/data
touch /usr/local/mongodb/mongod.log
touch /usr/local/mongodb/mongodb.conf

3.启动MongoDB(两种方式)

  ①参数启动

cd /usr/local/mongodb/bin/mongod/bin/
./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/mongod.log --logappend  --port=27017 --fork

注:如果加权限就用 --auth 参数,不需要权限就去掉,详细配置如下

--quiet# 安静输出
--port arg# 指定服务端口号,默认端口27017
--bind_ip arg# 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
--logpath arg# 指定MongoDB日志文件,注意是指定文件不是目录
--logappend# 使用追加的方式写日志
--pidfilepath arg# PID File 的完整路径,如果没有设置,则没有PID文件
--keyFile arg# 集群的私钥的完整路径,只对于Replica Set 架构有效
--unixSocketPrefix arg# UNIX域套接字替代目录,(默认为 /tmp)
--fork# 以守护进程的方式运行MongoDB,创建服务器进程
--auth# 启用验证
--cpu# 定期显示CPU的CPU利用率和iowait
--dbpath arg# 指定数据库路径
--diaglog arg# diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb# 设置每个数据库将被保存在一个单独的目录
--journal# 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
--journalOptions arg# 启用日志诊断选项
--ipv6# 启用IPv6选项
--jsonp# 允许JSONP形式通过HTTP访问(有安全影响)
--maxConns arg# 最大同时连接数 默认2000
--noauth# 不启用验证
--nohttpinterface# 关闭http接口,默认关闭27018端口访问
--noprealloc# 禁用数据文件预分配(往往影响性能)
--noscripting# 禁用脚本引擎
--notablescan# 不允许表扫描
--nounixsocket# 禁用Unix套接字监听
--nssize arg (=16)# 设置信数据库.ns文件大小(MB)
--objcheck# 在收到客户数据,检查的有效性,
--profile arg# 档案参数 0=off 1=slow, 2=all
--quota# 限制每个数据库的文件数,设置默认为8
--quotaFiles arg# number of files allower per db, requires --quota
--rest# 开启简单的rest API
--repair# 修复所有数据库run repair on all dbs
--repairpath arg# 修复库生成的文件的目录,默认为目录名称dbpath
--slowms arg (=100)# value of slow for profile and console log
--smallfiles# 使用较小的默认文件
--syncdelay arg (=60)# 数据写入磁盘的时间秒数(0=never,不推荐)
--sysinfo# 打印一些诊断系统信息
--upgrade# 如果需要升级数据库

 * Replicaton 参数

--fastsync# 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步
--autoresync# 如果从库与主库同步数据差得多,自动重新同步,
--oplogSize arg# 设置oplog的大小(MB)

 * 主/从参数

--master# 主库模式
--slave# 从库模式
--source arg# 从库 端口号
--only arg# 指定单一的数据库复制
--slavedelay arg# 设置从库同步主库的延迟时间

 * Replica set(副本集)选项:

--replSet arg# 设置副本集名称

 * Sharding(分片)选项

--configsvr# 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb
--shardsvr# 声明这是一个集群的分片,默认端口27018
--noMoveParanoia

# 关闭偏执为moveChunk数据保存

②配置文件启动

上述参数都可以写入 mongod.conf 配置文档里例如:

vim /usr/local/mongodb/mongodb.conf 

添加一下内容

#启用日志文件,默认启用

journal=true

#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false

quiet=false

# 日志文件位置

logpath=/usr/local/mongodb/logs

# 以追加方式写入日志

logappend=true

# 是否以守护进程方式运行

fork = true

# 默认27017

port = 27017

# 数据库文件位置

dbpath=/usr/local/mongodb/data

# 启用定期记录CPU利用率和 I/O 等待

#cpu = true

# 是否以安全认证方式运行,默认是不认证的非安全方式(设置完用户再打开)

#auth = true

#noauth = true

# 详细记录输出

#verbose = true

# Inspect all client data for validity on receipt (useful for

# developing drivers)用于开发驱动程序时验证客户端请求

#objcheck = true

# Enable db quota management

# 启用数据库配额管理

#quota = true

# 设置oplog记录等级

# Set oplogging level where n is

#   0=off (default)

#   1=W

#   2=R

#   3=both

#   7=W+some reads

#diaglog=0

# Diagnostic/debugging option 动态调试项

#nocursors = true

# Ignore query hints 忽略查询提示

#nohints = true

# 禁用http界面,默认为localhost:28017

#nohttpinterface = true

# 关闭服务器端脚本,这将极大的限制功能

# Turns off server-side scripting.  This will result in greatly limited

# functionality

#noscripting = true

# 关闭扫描表,任何查询将会是扫描失败

# Turns off table scans.  Any query that would do a table scan fails.

#notablescan = true

# 关闭数据文件预分配

# Disable data file preallocation.

#noprealloc = true

# 为新数据库指定.ns文件的大小,单位:MB

# Specify .ns file size for new databases.

# nssize = 

# Replication Options 复制选项

# in replicated mongo databases, specify the replica set name here

#replSet=setname

# maximum size in megabytes for replication operation log

#oplogSize=1024

# path to a key file storing authentication info for connections

# between replica set members

#指定存储身份验证信息的密钥文件的路径

#keyFile=/path/to/keyfile

保存退出,启动mongoDB

 /usr/local/mongodb/mongod --config /usr/local/mongodb/mongodb.conf

注:可以将mongodb临时加入系统路径变量中,这样可以不用输入路径直接启动,代码如下:

export PATH=/usr/local/mongodb/bin:$PATH

然后可以查看是否成功:

echo $PATH

 4. 用户授权和管理

I. mongodb安装好后第一次进入是不需要密码的,也没有任何用户,通过shell命令可直接进入,cd到mongodb目录下的bin文件夹,执行命令./mongo即可

运行如下:

[root@******  coincRen]# mongo
MongoDB shell version v4.0.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.0

> use test;

switched to db test

II. 添加管理用户(mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase),

>use admin

>db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

注:添加完用户后可以使用show users或db.system.users.find()查看已有用户

III. 添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭

IV. 使用权限方式启动MongoDB

 

或者在配置文件中修改:

 auth = true

#noauth = true

V. 进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的。 

> use admin

> db.auth("admin","123456")   #认证,返回1表示成功

VI. 验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走,

> use mydb

> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})

VII. 使用创建的用户root登录进行数据库操作:

[root@***** coincRen]# mongo 127.0.0.1/mydb -uroot -p
MongoDB shell version v4.0.0
Enter password: 
connecting to: mongodb://127.0.0.1:27017/mydb
MongoDB server version: 4.0.0

> use mydb

switched to db mydb

> show collections

然后就可以进行增删改查各种数据操作了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值