mongodb配置及其开机自启动设置

一、mongodb 配置及参数说明

解压安装好MongoDB之后,接下来需要配置运行。在MongoDB的安装目录,有几个子目录,bin下面是可执行文件,包括

 

mongod:数据库服务端,类似mysqld,每个实例启动一个进程,可以forkDaemon运行

mongo:客户端命令行工具,类似sqlplus/mysql,其实也是一个js解释器,支持js语法

mongodump/mongorestore:将数据导入为bson格式的文件/bson文件恢复为数据库,类似xtracbackup

mongoexport/mongoimport:将collection导出为json/csv格式数据/将数据导入数据库,类似mysqldump/mysqlimport

bsondump:将bson格式的文件转储为json格式的数据

mongos:分片路由,如果使用了sharding功能,则应用程序连接的是mongos而不是mongod

mongofilesGridFS管理工具

mongostat:实时监控工具

最简单的,通过执行mongod即可以启动MongoDB数据库服务,mongod支持很多的参数,但都有默认值,其中最重要的是需要指定数据文件 路径,或者确保默认的/data/db存在并且有访问权限,否则启动后会自动关闭服务。Ok,那也就是说,只要确保dbpath就可以启动MongoDB 服务。

 

mongod的主要参数有: 

dbpath: 数据文件存放路径,每个数据库会在其中创建一个子目录。用于防止同一个实例多次运行的mongod.lock也保存在此目录中。

logpath:错误日志文件

logappend: 错误日志采用追加模式(默认是覆写模式)

bind_ip: 对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip上,如有需要可以单独指定

port: 对外服务端口。Web管理端口在这个port的基础上+1000

fork: 以后台Daemon形式运行服务

journal:开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在1.8版本后正式加入,取代在1.7.5版本中的dur参数。

syncdelay: 执行sync的间隔,单位为秒。

directoryperdb: 每个db存放在单独的目录中,建议设置该参数。

maxConns: 最大连接数

repairpath: 执行repair时的临时目录。在如果没有开启journal,异常宕机后重启,必须执行repair操作。

 

在源代码中,mongod的参数分为一般参数,windows参数,replication参数,replica set参数,以及隐含参数。上面列举的都是一般参数。如果要配置replicationreplica set等,还需要设置对应的参数,这里先不展开,后续会有专门的文章来讲述。执行mongo –help可以看到对大多数参数的解释。但有一些隐含参数,则只能通过看代码来获得(db.cpp po::options_description hidden_options(Hidden options);),隐含参数一般要么是还在开发中,要么是准备废弃,因此在生产环境中不建议使用。

 

可能你已经注意到,mongod的参数中,没有设置内存大小相关的参数,是的,mongodb使用os mmap机制来缓存数据文件数据,自身目前不提供缓存机制。这样好处是代码简单,mmap在数据量不超过内存时效率很高。但是数据量超过系统可用内存后, 则写入的性能可能不太稳定,容易出现大起大落,不过在最新的1.8版本中,这个情况相对以前的版本已经有了一定程度的改善。

 

这么多参数,全面写在命令行中则容易杂乱而不好管理。因此,mongod也和mysqld一样支持将参数写入到一个配置文本文件中,然后通过config参数来引用此配置文件:

 

./mongod --config /etc/mongo.cnf

至此,已经成功的运行了一个单机的mongodb实例。

 

port=5281

fork=true

logpath=/var/log/mongo/mongodb.log

logappend=true

dbpath=/home/mongo/mongodb/data1

directoryperdb=true

auth=true

maxConns=1000

nohttpinterface=true

 

例:./mongod -journal -maxConns=2400 -rest     启动mongodb server,-journal 代表要写日志,-maxConns=2400代表mongodb 可以接受2400tcp连接,-rest代表可以允许客户端通过rest API访问mongdb server.

 

 

 

二、 修改系统允许的最大连接数

上面的最大连接数目的限制原因是Linux系统默认一个进程最大文件打开数目为1024,用ulimit -a 命令检查,可以看到下面这行:

open files                      (-n) 1024

 

 

修改/etc/security/limits.conf 配置文件。

使用命令:sudo gedit /etc/security/limits.conf

在文件中增加

* soft nofile 3000

* hard nofile 20000

root soft nofile 3000

root hard nofile 20000

* 表示该配置对所有用户均有效,root用户要特别加两行。

硬限制通常是根据系统硬件资源状况(主要是系统内存)计算出来的系统最多可同时打开的文件数量,软限制是在这个基础上进一步的限制。因此软限制数目要低于硬限制。

nofile表示 max number of open files

重新启动计算机,然后再用ulimit -a 命令查看:

open files                      (-n) 3000

已经生效了。现在再启动mongodb server,问题解决

 

三、设置开机自启动 

MongoDB server 加入开机自启动

gedit /etc/rc.d/rc.local 使用编辑器打开配置文件,并在其中加入下面一行代码

 

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

 

修改rc.local文件为有权限的可执行文件,如: chmod +x  rc.local

 

OK了,重启下机器,是不是可以随机启动了呢?

 

关闭或开启 mongodb server:   service mongodb stop/start

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在开机时自动启动MongoDB,你可以按照以下步骤进行设置: 1. 打开终端或命令提示符窗口。 2. 进入MongoDB的安装目录。在终端中使用以下命令进入默认安装目录(根据你的安装路径可能会有所不同): ``` cd /usr/local/mongodb/ ``` 3. 创建一个名为`mongod.conf`的配置文件。你可以使用任何文本编辑器打开此文件,例如: ``` vi mongod.conf ``` 4. 在`mongod.conf`文件中添加以下内容: ``` systemLog: destination: file path: /var/log/mongodb/mongod.log logAppend: true storage: dbPath: /var/lib/mongodb journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongod.pid net: bindIp: 127.0.0.1 ``` 5. 保存并关闭`mongod.conf`文件。 6. 创建MongoDB的日志文件和PID文件的存储目录。在终端中使用以下命令创建所需的目录: ``` sudo mkdir -p /var/log/mongodb/ sudo mkdir -p /var/run/mongodb/ ``` 7. 授权MongoDB的数据和日志目录给MongoDB用户。在终端中使用以下命令: ``` sudo chown -R mongodb:mongodb /var/log/mongodb/ sudo chown -R mongodb:mongodb /var/lib/mongodb/ sudo chown -R mongodb:mongodb /var/run/mongodb/ ``` 8. 编辑`/etc/rc.local`文件以在启动时自动启动MongoDB。在终端中使用以下命令打开此文件: ``` sudo vi /etc/rc.local ``` 9. 在`/etc/rc.local`文件的末尾添加以下内容: ``` /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongod.conf ``` 10. 保存并关闭`/etc/rc.local`文件。 现在,当你的系统开机时,MongoDB将自动启动。你可以通过检查日志文件`/var/log/mongodb/mongod.log`来验证它是否成功启动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值