• 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

    二: 解压到指定目录

    [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.



    [root@www log]# ps aux | grep mongodb
    root       2879  0.9  3.0 2711616 117232 ?      Sl   20:15   0:26 /usr/local/mongodb/mongdb7/bin/mongod --config /usr/local/mongodb/mongdb7/mongodb.conf
    root       5501  0.0  0.0 112824   988 pts/0    S+   21:01   0:00 grep --color=auto mongodb
    [root@www log]# netstat -lanp | grep 27017
    tcp        0      0 192.168.1.111:27017     0.0.0.0:*               LISTEN      2879/mongod         
    unix  2      [ ACC ]     STREAM     LISTENING     28020    2879/mongod          /tmp/mongodb-27017.sock
     

    五: 拓展mongodb.conf配置文件

    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优化|在实际中探究吧


  • 相关阅读:
    # 杂谈偶感 × 基于QFD方法的质量屋构建
    时间序列论文: NeuralProphet: Explainable Forecasting at Scale
    测试人不得不知道的自动化知识
    CLion远程Linux开发环境搭建及找不到Linux头文件的解决方法
    第七章 API及系统架构介绍
    微信小程序——跳转方式
    Linux日志系统_syslog服务详解
    浅析DNS劫持及应对方案
    自动编码器(AE)生成Mnist手写数字集,基于tensorflow和keras实现
    云原生技术 --- k8s工作负载之pod的学习与理解
  • 原文地址:https://blog.csdn.net/u014635374/article/details/133516320