mongodb通过yum安装
安装前注意: 此教程是通过yum安装的.仅限64位centos系统
安装步骤:
1、创建仓库文件:
1
|
vi /etc/yum.repos.d/mongodb-org-3.4.repo |
然后复制下面配置,保存退出
1
2
3
4
5
6
|
[mongodb-org-3.4] name=MongoDB Repository baseurl=https: //repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https: //www.mongodb.org/static/pgp/server-3.4.asc |
2、yum安装
1
|
yum install -y mongodb-org |
没有权限就在前面加: sudo
安装完毕后修改配置文件:
1
|
vi /etc/mongod.conf |
修改配置文件的 bind_ip,
默认是 127.0.0.1 只限于本机连接
。所以安装完成后必须把这个修改为 0.0.0.0 ,否则通过别的机器是没法连接的!
3、启动、停止、重启
MongoDB默认将数据文件存储在/var/lib/mongo
目录,默认日志文件在/var/log/mongodb
中。如果要修改,可以在 /etc/mongod.conf
配置中指定备用日志和数据文件目录。
启动命令:
1
|
service mongod start |
停止命令:
1
|
service mongod stop |
重启命令:
1
|
service mongod restart |
查看mongoDB是否启动成功:
可以通过查看日志文件
1
|
cat / var /log/mongodb/mongod.log |
日志文件应该会出现如下一句说明
[initandlisten] waiting for connections on port <port>
<port> 是mongodb运行端口
设置开机启动
1
|
chkconfig mongod on |
4、使用
1
2
3
4
5
6
7
8
9
10
|
[root@instance-d0nk2r2c ~]# mongo ## 查看数据库 > show dbs; ## 查看数据库版本 > db.version(); ## 常用命令帮助 > db.help(); |
5、卸载移除mongo
1
|
yum erase $(rpm -qa | grep mongodb-org) |
6、移除数据库文件和日志文件
1
2
|
rm -r / var /log/mongodb rm -r / var /lib/mongo |
本教程是参考官网的安装说明安装的,英语水平有限,只能靠自己理解整理的部分重点.英语好的同学,可以自己查看官网安装说明,链接:
https://docs.mongodb.com/master/tutorial/install-mongodb-on-red-hat/
#############
生成密钥文件
openssl rand -base64 741 > mongo_key
chmod
700 mongo_key
onwer
chown
mongodb:nogroup mongo_key
chmod go-r mongo_key
###########################yum安装 mongo主从配置文件#####################################3
storage:
oplogMinRetentionHours: 10
dbPath: /database/mongo
journal:
enabled: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 32
checkpointSizeMB: 256
setParameter:
wiredTigerConcurrentReadTransactions: 256
wiredTigerConcurrentWriteTransactions: 256
maxLogSizeKB: 20
syncdelay: 30
systemLog:
destination: file
logAppend: true
logRotate: reopen
path: /database/mongo/mongodb.log
processManagement:
fork: true
pidFilePath: /var/run/mongod.pid
net:
port: 3017
bindIp: 0.0.0.0
security:
authorization: enabled
keyFile: /usr/local/mongo/bin/mongo-key
replication:
replSetName: "mymongo"
机器规划:
192.168.1.23 主节点
192.168.1.24 从节点
192.168.1.25 仲裁节点, 不存储数据
下载安装
首先下载安装包:https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-server-4.2.8-1.el7.x86_64.rpm
三台机器都执行安装命令
rpm -ivh mongodb-org-server-4.2.8-1.el7.x86_64.rpm
systemctl enable mongod
1
2
复制集配置
配置文件位于
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /opt/mongo_data
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
#security:
# authorization: enabled
# keyFile: /opt/mongo_data/mongo.key
#operationProfiling:
#replication:
replication:
replSetName: testrs
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
默认配置里面要改动几个地方
# 数据存储路径
storage:
dbPath: /opt/mongo_data
# 机器需要局域网访问,需要绑定0.0.0.0
net:
port: 27017
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
# 需要账户密码登录,而且复制集之间通过key鉴权
#security:
# authorization: enabled
# keyFile: /opt/mongo_data/mongo.key
#operationProfiling:
# 复制集名称
replication:
replSetName: testrs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
key生成
在一台机器生成key,设置key与目录权限
openssl rand -base64 753 > /opt/mongo_data/mongo.key
chmod 600 /opt/mongo_data/mongo.key
chown -R mongod:mongod /opt/mongo_data/
1
2
3
4
复制key到另外两台机器,同样设置key和目录权限
三台机器通过systemctl start mongod启动服务器,这个时候三台机器都可以访问,需要配置复制集信息
配置复制集
mongo client登录其中一台,执行
cfg={ _id:"testrs", members:[ {_id:0,host:'192.168.1.23:27017',priority:2}, {_id:1,host:'192.168.1.24:27017',priority:1}, {_id:2,host:'192.168.1.25:27017',arbiterOnly:true}] };
rs.initiate(cfg) # 初始化复制集
rs.status() # 查看副本状态
1
2
3
4
创建授权用户
创建用户, 可以注意到,上面的security配置默认是没有打开的,因为还没有用户。这一步目标是创建admin用户
mongo client登录192.168.1.23 机器
use admin
db.createUser({user: "admin",pwd:"***",roles:[{role:"root",db:"admin"}]})
1
2
打开授权配置
security:
authorization: enabled
keyFile: /opt/mongo_data/mongo.key
1
2
3
重启mongod即可