Centos7安装Mongodb7.xxNoSQL数据库(骨灰级+保姆级)

一: mongodb下载

MongoDB 社区免费下载版

MongoDB社区下载版

root@www tools\]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.1.0-rc4.tgz ![](https://file.jishuzhan.net/article/1709100616795557889/8691267562526219fe5277d44a13bb07.webp) #### 二: 解压到指定目录 > \[root@www tools\]# mkdir -p /usr/local/mongodb > > \[root@www tools\]# > > **tar -zxvf mongodb-linux-x86_64-rhel70-7.1.0-rc4.tgz -C /usr/local/mongodb/** 三: 制作mongodb启动脚本 > \[root@www mongodb\]# pwd > > /usr/local/mongodb > > \[root@www mongodb\]# ll > > 总用量 0 > > drwxr-xr-x 3 root root 100 10月 3 12:57 mongodb-linux-x86_64-rhel70-7.1.0-rc4 > > \[root@www mongodb\]# **mv mongodb-linux-x86_64-rhel70-7.1.0-rc4 mongdb7** > > \[root@www mongodb\]# ll > > 总用量 0 > > drwxr-xr-x 3 root root 100 10月 3 12:57 mongdb7 > > \[root@www mongodb\]# cd mongdb7/ > > *** ** * ** *** > > 创建日志目录与数据存储目录 > > \[root@www mongdb7\]# > > **mkdir -p /usr/local/mongodb/mongdb7/data /usr/local/mongodb/mongdb7/log** > > *** ** * ** *** > > 创建mongodb.conf文件并赋值执行权限 > > \[root@www mongdb7\]# touch mongodb.conf > > \[root@www mongdb7\]# chmod +x mongodb.conf > > \[root@www mongdb7\]# ll > > 总用量 176 > > drwxr-xr-x 2 root root 57 10月 3 12:57 bin > > drwxr-xr-x 2 root root 6 10月 3 13:05 data > > -rw-r--r-- 1 root root 30608 9月 28 08:48 LICENSE-Community.txt > > drwxr-xr-x 2 root root 6 10月 3 13:05 log > > -rwxr-xr-x 1 root root 0 10月 3 13:07 mongodb.conf > > -rw-r--r-- 1 root root 16726 9月 28 08:48 MPL-2 > > -rw-r--r-- 1 root root 1978 9月 28 08:48 README > > -rw-r--r-- 1 root root 121092 9月 28 08:48 THIRD-PARTY-NOTICES > > *** ** * ** *** > > mongodb.conf配置文件: > > *** ** * ** *** > > \[root@www mongdb7\]# cat mongodb.conf > **dbpath=/usr/local/mongodb/mongdb7/data/ > logpath=/usr/local/mongodb/mongdb7/log/mongodb.log > pidfilepath=/usr/local/mongodb/mongdb7/bin/mongodb.pid > directoryperdb=true > logappend=true > bind_ip=192.168.1.111 > port=27017** > > **# 少了fork=true的配置,启动时连接超时,启动不了** > **fork=true** > > *** ** * ** *** > > 启动脚本文件: > > *** ** * ** *** > > \[root@www log\]# cat /lib/systemd/system/mongodb.service > **\[Unit\]** > > **Description=mongodb > After=network.target remote-fs.target nss-lookup.target** > > **\[Service

Type=forking
ExecStart=/usr/local/mongodb/mongdb7/bin/mongod --config /usr/local/mongodb/mongdb7/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/mongdb7/bin/mongod --shutdown --config /usr/local/mongodb/mongdb7/mongodb.conf
PrivateTmp=true**

[Install]
WantedBy=multi-user.target

三: 设置开机启动

设置开机启动

systemctl enable mongodb.service

#启动服务

systemctl start mongodb.service

#关闭服务

systemctl stop mongodb.service

#开机启动

systemctl enable mongodb.service

重新启动状态

systemctl restart mongodb

查看启动状态

systemctl status mongodb

四: 启动并查看启动状态

root@www mongdb7\]# systemctl start mongodb \[root@www mongdb7\]# systemctl status mongodb ● mongodb.service - mongodb Loaded: loaded (/usr/lib/systemd/system/mongodb.service; enabled; vendor preset: disabled) Active: active (**running**) since 二 2023-10-03 13:41:38 CST; 3s ago Process: 3032 ExecStop=/usr/local/mongodb/mongdb7/bin/mongod --shutdown --config /usr/local/mongodb/mongdb7/mongodb.conf (code=exited, status=0/SUCCESS) Process: 3061 ExecStart=/usr/local/mongodb/mongdb7/bin/mongod --config /usr/local/mongodb/mongdb7/mongodb.conf (code=exited, status=0/SUCCESS) Main PID: 3063 (mongod) Tasks: 34 CGroup: /system.slice/mongodb.service └─3063 /usr/local/mongodb/mongdb7/bin/mongod --config /usr/local/mongodb/mongdb7/mongodb.conf 10月 03 13:41:35 www.yhchange.com systemd\[1\]: Starting mongodb... 10月 03 13:41:35 www.yhchange.com mongod\[3061\]: about to fork child process, waiting until server is ready for connections. 10月 03 13:41:35 www.yhchange.com mongod\[3061\]: forked process: 3063 10月 03 13:41:38 www.yhchange.com mongod\[3061\]: child process started successfully, parent exiting 10月 03 13:41:38 www.yhchange.com systemd\[1\]: Started mongodb.

mongodb 3.0及以上版本基本都是使用 yaml 语法格式的配置文件, 启动 mongo 实例如果不是指定配置文件或参数命令启动, 会按照默认的参数启动。


journal=true

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

quiet=false

日志文件位置

logpath=/usr/local/mongodb/log/mongodb.log

以追加方式写入日志

logappend=true

#################################################

是否以守护进程方式运行

fork = true

默认27017

port = 27017

数据库文件位置

dbpath=/data/mongodata

###########################################################

启用定期记录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各配置参数详细说明:

1、verbose:

日志信息冗余。默认false。提高内部报告标准输出或记录到logpath配置的日志文件中。要启用verbose或启用verbosity 用vvvv参数,

如:verbose = true

2.vvvv = true

ps:启动verbose冗长信息,它的级别有 vv~vvvvv,v越多级别越高,在日志文件中记录的信息越详细。

3、port:

端口。默认27017,MongoDB的默认服务TCP端口,监听客户端连接。要是端口设置小于1024,比如1021,则需要root权限启动,不能用 mongodb帐号启动,(普通帐号即使是27017也起不来)否则报错:[mongo --port=1021 连接]

ERROR: listen(): bind() failed errno:13 Permission denied for socket: 127.0.0.1:1021

如:port = 27017

4、bind_ip:

绑定地址。默认127.0.0.1,只能通过本地连接。进程绑定和监听来自这个地址上的应用连接。要是需要给其他服务器连接,则需要注释掉这个或则 把IP改成本机地址,如192.168.200.201[其他服务器用 mongo --host=192.168.200.201 连接] ,

可以用一个逗号分隔的列表绑定多个IP地址。

如:bind_ip = 127.0.0.1

5、maxConns:

最大连接数。默认值:取决于系统(即的ulimit和文件描述符)限制。MongoDB中不会限制其自身的连接。当设置大于系统的限制,则无效,以系 统限制为准。这对于客户端创建很多"表",允许连接超时而不关闭"表"的时候很有用。

设置该值的高于连接池和总连接数的大小,以防止尖峰时 候的连接。注意:不能设置该值大于20000。

如:maxConns = 100

6、objcheck:

强制验证客户端请求。2.4的默认设置为objcheck成为true,在早期版本objcheck默认为false。因为它强制验证客户端请求,确保客户端绝不插入无 效文件到数据库中。对于嵌套文档的对象,会有一点性能影响。设置noobjcheck 关闭。

如:objcheck = true

7、noobjcheck:

同上,默认关闭false。

如:noobjcheck = false

8、logpath:

指定日志文件,该文件将保存所有的日志记录、诊断信息。除非另有指定,mongod将所有的日志信息输出到标准输出。如果没有指定logappend, 重启则日志会进行覆盖操作。

如:logpath=/var/log/mongodb/mongodb.log

9、logappend:写日志的模式:设置为true为追加。默认是覆盖。如果未指定此设置,启动时MongoDB的将覆盖现有的日志文件。

如:logappend=true

10、syslog:日志输出都发送到主机的syslog系统,而不是标准输出到logpath指定日志文件。syslog和logpath不能一起用,会报错:Cant use both a logpath and syslog

如:syslog = true

11、pidfilepath:

进程ID,没有指定则启动时候就没有PID文件。默认缺省。

如:pidfilepath = /var/run/mongo.pid

12、keyFile:

指定存储身份验证信息的密钥文件的路径。默认缺省。详情见:"

word-spacing: 0px; display: inline; white-space: normal; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal; background- color: #ffffff;

-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">Replica Set Security" and "Replica Set Administration."

如:.keyFile = /srv/mongodb/keyfile

14、fork:

是否后台运行,设置为true 启动 进程在后台运行的守护进程模式。默认false。

如:fork = true

15、auth:

用户认证,默认false。不需要认证。当设置为true时候,进入数据库需要auth验证,当数据库里没有用户,则不需要验证也可以操作。直到创建了第一个用户,之后操作都需要验证。

比如:通过db.addUser('sa','sa') 在admin库下面创建一个超级用户,只能在在admin库下面先认证完毕了:ab.auth('sa','sa') ,才能去别的库操作,不能在其他库验证。这样连接数据库也需要指定库:

1.mongo -usa -psa admin #sa 帐号连接admin

1.mongo -uaa -paa test #aa 帐号连接test

如:auth = true


关于mongodb优化|在实际中探究吧


相关推荐
forestsea1 小时前
全解:Redis RDB持久化和AOF持久化
数据库·redis·缓存
叫我DPT1 小时前
分享一个python启动文件脚本(django示例)
数据库·python·django
XXYBMOOO2 小时前
基于 Qt 的 BMP 图像数据存取至 SQLite 数据库的实现
数据库·c++·qt
Sunlight_7772 小时前
第五章 SQLite数据库:1、SQLite 基础语法及使用案例
java·linux·服务器·jvm·数据库·tcp/ip·sqlite
嘉嘉king2 小时前
Mysql联表查询
数据库
镜舟科技3 小时前
NoSQL 与 NewSQL 全面对比:如何选择适合你的数据库方案?
数据库·starrocks·nosql·newsql·技术架构·实时数据分析
TDengine (老段)3 小时前
TDengine 语言连接器(Node.js)
大数据·c语言·数据库·物联网·node.js·时序数据库·tdengine
Sunlight_7773 小时前
第五章 SQLite数据库:3、SQLite 常用语法及使用案例
jvm·数据库·sqlite
数据库砖家4 小时前
YashanDB|虚拟内存高出实际内存十几G?原因不只是“占用大”这么简单
数据库