文章目录
  1. 1. 环境准备
  2. 2. 安装
  3. 3. 启动服务
  4. 4. 创建服务文件
    1. 4.1. 启动服务
    2. 4.2. 测试
  5. 5. 消除警告
  6. 6. 文件限制数调整
  7. 7. 停止mongodb
  8. 8. 再次验证

环境准备

1
2
3
4
[root@snails ~]# mkdir /root/mongodb #创建MongoDB程序存放目录
[root@snails ~]#mkdir /data/mongodata -p #创建数据存放目录
[root@snails ~]# mkdir /data/log/mongolog -p #创建日志存放目录
[root@snails ~]# curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.7.tgz

安装

1
2
3
[root@snails ~]# tar xf mongodb-linux-x86_64-3.2.7.tgz
[root@snails ~]# cd mongodb-linux-x86_64-3.2.7/
[root@snails ~]# cp -r * /root/mongodb
  • 为了便于命令启动,需要编辑全局变量PATH
    1
    2
    3
    [root@snails ~]# vi /etc/profile.d/mongo.sh
    export PATH=$PATH:/root/mongodb/bin
    [root@snails ~]# source /etc/profile

启动服务

首先查看mongod的帮助信息

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
[root@snails ~]# pwd
/root/mongodb/bin
[root@snails ~]# vi /etc/profile.d/mongo.sh
[root@snails ~]# source /etc/profile
[root@snails ~]# mongod --help
Options:

General options:
-h [ --help ] show this usage information
--version show version information
-f [ --config ] arg configuration file specifying
additional options
-v [ --verbose ] [=arg(=v)] be more verbose (include multiple times
for more verbosity e.g. -vvvvv)
--quiet quieter output
--port arg specify port number - 27017 by default
--bind_ip arg comma separated list of ip addresses to
listen on - all local ips by default
--ipv6 enable IPv6 support (disabled by
default)
--maxConns arg max number of simultaneous connections
- 1000000 by default
--logpath arg log file to send write to instead of
stdout - has to be a file, not
directory
--syslog log to system's syslog facility instead
of file or stdout
--syslogFacility arg syslog facility used for mongodb syslog
message
--logappend append to logpath instead of
over-writing
--logRotate arg set the log rotation behavior
(rename|reopen)
--timeStampFormat arg Desired format for timestamps in log
messages. One of ctime, iso8601-utc or
iso8601-local
--pidfilepath arg full path to pidfile (if not set, no
pidfile is created)
--keyFile arg private key for cluster authentication
--noauth run without security
--setParameter arg Set a configurable parameter
--httpinterface enable http interface
--clusterAuthMode arg Authentication mode used for cluster
authentication. Alternatives are
(keyFile|sendKeyFile|sendX509|x509)
--nounixsocket disable listening on unix sockets
--unixSocketPrefix arg alternative directory for UNIX domain
sockets (defaults to /tmp)
--filePermissions arg permissions to set on UNIX domain
socket file - 0700 by default
--fork fork server process
--auth run with security
--jsonp allow JSONP access via http (has
security implications)
--rest turn on simple rest api
--slowms arg (=100) value of slow for profile and console
log
--profile arg 0=off 1=slow, 2=all
--cpu periodically show cpu and iowait
utilization
--sysinfo print some diagnostic system
information
--noIndexBuildRetry don't retry any index builds that were

interrupted by shutdown
--noscripting disable scripting engine
--notablescan do not allow table scans
--shutdown kill a running server (for init
scripts)

Replication options:
--oplogSize arg size to use (in MB) for replication op
log. default is 5% of disk space (i.e.
large is good)

Master/slave options (old; use replica sets instead):
--master master mode
--slave slave mode
--source arg when slave: specify master as
<server:port>
--only arg when slave: specify a single database
to replicate
--slavedelay arg specify delay (in seconds) to be used
when applying master ops to slave
--autoresync automatically resync if slave data is
stale

Replica set options:
--replSet arg arg is <setname>[/<optionalseedhostlist
>]
--replIndexPrefetch arg specify index prefetching behavior (if
secondary) [none|_id_only|all]
--enableMajorityReadConcern enables majority readConcern

Sharding options:
--configsvr declare this is a config db of a
cluster; default port 27019; default
dir /data/configdb
--configsvrMode arg Controls what config server protocol is
in use. When set to "sccc" keeps server
in legacy SyncClusterConnection mode
even when the service is running as a
replSet
--shardsvr declare this is a shard db of a
cluster; default port 27018

SSL options:
--sslOnNormalPorts use ssl on configured ports
--sslMode arg set the SSL operation mode
(disabled|allowSSL|preferSSL|requireSSL
)
--sslPEMKeyFile arg PEM file for ssl
--sslPEMKeyPassword arg PEM file password
--sslClusterFile arg Key file for internal SSL
authentication
--sslClusterPassword arg Internal authentication key file
password
--sslCAFile arg Certificate Authority file for SSL
--sslCRLFile arg Certificate Revocation List file for
SSL
--sslDisabledProtocols arg Comma separated list of TLS protocols
to disable [TLS1_0,TLS1_1,TLS1_2]
--sslWeakCertificateValidation allow client to connect without
presenting a certificate
--sslAllowConnectionsWithoutCertificates
allow client to connect without
presenting a certificate
--sslAllowInvalidHostnames Allow server certificates to provide
non-matching hostnames
--sslAllowInvalidCertificates allow connections to servers with
invalid certificates
--sslFIPSMode activate FIPS 140-2 mode at startup

Storage options:
--storageEngine arg what storage engine to use - defaults
to wiredTiger if no data files present
--dbpath arg directory for datafiles - defaults to
/data/db
--directoryperdb each database will be stored in a
separate directory
--noprealloc disable data file preallocation - will
often hurt performance
--nssize arg (=16) .ns file size (in MB) for new databases
--quota limits each database to a certain
number of files (8 default)
--quotaFiles arg number of files allowed per db, implies
--quota
--smallfiles use a smaller default file size
--syncdelay arg (=60) seconds between disk syncs (0=never,
but not recommended)
--upgrade upgrade db if needed
--repair run repair on all dbs
--repairpath arg root directory for repair files -
defaults to dbpath
--journal enable journaling
--nojournal disable journaling (journaling is on by
default for 64 bit)
--journalOptions arg journal diagnostic options
--journalCommitInterval arg how often to group/batch commit (ms)

WiredTiger options:
--wiredTigerCacheSizeGB arg maximum amount of memory to allocate
for cache; defaults to 1/2 of physical
RAM
--wiredTigerStatisticsLogDelaySecs arg (=0)
seconds to wait between each write to a
statistics file in the dbpath; 0 means
do not log statistics
--wiredTigerJournalCompressor arg (=snappy)
use a compressor for log records
[none|snappy|zlib]
--wiredTigerDirectoryForIndexes Put indexes and data in different
directories
--wiredTigerCollectionBlockCompressor arg (=snappy)
block compression algorithm for
collection data [none|snappy|zlib]
--wiredTigerIndexPrefixCompression arg (=1)
use prefix compression on row-store
leaf pages

创建服务文件

  • 在mongodb/bin目录下创建配置文件mongodb.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [root@snails ~]# cd mongodb/bin
    [root@snails bin]# vi mongodb.conf
    #数据文件存放目录
    dbpath = /data/mongodata
    #日志文件存放目录
    logpath = /data/log/mongolog/mongodb.log
    #端口
    port = 27017
    #以守护程序的方式启用,即在后台运行
    fork = true
    nohttpinterface = true

启动服务

1
2
3
4
5
[root@snails bin]# mongod --dbpath=/data/mongodata --logpath=/data/log/mongolog/mongodb.log --logappend --fork
#通过配置文件启动
[root@snails bin]# mongod -f /root/mongodb/bin/mongodb.conf
netstat -tnlp | grep mongod
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 18093/mongod

测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@snails bin]# mongo
MongoDB shell version: 3.2.7
connecting to: test
Server has startup warnings:
2016-07-07T20:38:09.623+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 15084 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
> show dbs
local 0.000GB
> quit()

消除警告

1
2
3
4
5
6
7
8
9
10
[root@snails bin]# vi /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
ulimit -u 65535
[root@snails bin]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@snails bin]# echo never > /sys/kernel/mm/transparent_hugepage/defrag

文件限制数调整

修改配置文件 /etc/security/limits.conf,添加配置信息:

1
2
3
4
* soft nofile 65535
* hard nofile 65535
* soft nproc 32000
* hard nproc 32000

停止mongodb

1
2
3
正常停止方法: kill  -2 PID 
>use  admin  
>db.shutdownServer();

再次验证

1
2
3
4
5
6
7
8
9
10
11
12
[root@snails bin]# mongod -f /root/mongodb/bin/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 18229
child process started successfully, parent exiting
[root@snails bin]# mongo
MongoDB shell version: 3.2.7
connecting to: test
Server has startup warnings:
2016-07-07T21:06:53.798+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2016-07-07T21:06:53.798+0800 I CONTROL [initandlisten]
> exit
bye
文章目录
  1. 1. 环境准备
  2. 2. 安装
  3. 3. 启动服务
  4. 4. 创建服务文件
    1. 4.1. 启动服务
    2. 4.2. 测试
  5. 5. 消除警告
  6. 6. 文件限制数调整
  7. 7. 停止mongodb
  8. 8. 再次验证