mongodb安装

mongod community下载地址:https://www.mongodb.com/try/download/community

mongodb-tools下载地址:https://www.mongodb.com/download-center/database-tools/releases/archive

一、安装mongodb4.4.27

mkdir /home/mongodb &&  cd  /home/mongodb

mkdir conf data logs  run

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.27.tgz   -C /home/mongodb

ln -s /home/mongodb/bin/* /usr/bin/

yum -y install mongodb-database-tools-rhel70-x86_64-100.9.4.rpm 

二、修改配置文件
1、修改mongodb主配置文件

vim /home/mongodb/conf/mongodb.conf

# 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: /home/mongodb/logs/mongod.log

# Where and how to store data.
storage:
  dbPath: /home/mongodb/data
  journal:
    enabled: true
#  wiredTiger:
 #   engineConfig:
  #    cacheSizeGB: 8
#  engine:
#  wiredTiger:

# how the process runs
processManagement:
  fork: true
  pidFilePath: /home/mongodb/run/mongod.pid
  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

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options

#auditLog:

#snmp:

注:如果客户端连接不上,配置文件中增加:bind_ip = 0.0.0.0,再然后考虑防火墙原因

2、添加service启动

vim /usr/lib/systemd/system/mongod.service
[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target

[Service]
User=root
Type=forking
Environment="OPTIONS=-f /home/mongodb/conf/mongodb.conf"
ExecStart=/usr/bin/mongod -f /home/mongodb/conf/mongodb.conf
ExecStartPre=/usr/bin/mkdir -p /home/mongodb/run/mongodb
ExecReload=/bin/kill HUP $MAINPID
ExecStop=/usr/bin/mongod/mongod  --shutdown  --dbpath /home/mongodb/data/
PermissionsStartOnly=true
PIDFile=/home/mongodb/run/mongod.pid
Type=forking
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

三、启动mongod

 systemctl start mongod 
 systemctl status mongod   #如果报错自行查看/home/mongodb/logs/mongod.log
 systemctl enable mongod 
 netstat -plntu  |grep  20017  
 mongo 127.0.0.1:27017/test   

四、Mongodb启动常见报错处理方法

  1. 查看是是否已经生成log日志,如果没有log日志生成查看主配置文件路径是否有误。
  2. 如果生成了log日志,查看log报错信息,一般启动会因缺少pid文件的目录报错。
  3. 在mongodb的data目录中找到mongod.lock文件删除掉重新启动mongodb。
  4. 最开始为了方便使用mongodb-org-server-4.4.27-1.el7.x86_64.rpm进行安装部署服务可以正常启动,但是我修改了conf文件中的dbPath、log文件目录路径,就会出现:
    Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK == 1, overriding "processManagement.fork" to false
    和"Error during global initialization","attr":{"error":{"code":38,"codeName":"FileNotOpen","errmsg":"Failed to open /home/mongodb/logs/mongod.log"
    还有"error":"IllegalOperation: Attempted to create a lock file on a read-only directory: /home/mongodb/"等报错导致服务无法正常启动,尝试了授权等多种方法无法处理后,最终还是使用了tar包进行安装部署。

五、创建用户,创建数据库,测试连接(创建用户一定要注释掉主配置文件中的用户认证,不然会报错)


use admin

db.createUser( { user:"admin", pwd:"123456", roles:[{role:"root",db:"admin"}] } )  //创建管理用户

db.updateUser ("admin",{roles:["userAdminAnyDatabase","userAdmin","readWrite","dbAdmin","clusterAdmin","readWriteAnyDatabase","dbAdminAnyDatabase"]});       //给admin用户添加权限

 show users      //查看所有用户权限

授权后在mongod.conf打开用户认证,重启mongo服务,可以测试navicat使用admin用户登录操作创建子用户和数据库

use admin

db.createUser(                    

  {

    user: "user01",

    pwd: "password",

    roles: [ { role: "readWrite", db: "db1" }, { role: "dbOwner", db: "db1" }, { role: "readWrite", db: "db2" }, { role: "dbOwner", db: "db2" } ]

  }

)

mongo基础命令

db.shutdownServer(); //关闭mongodb服务,要在admin库下才执行

db.changeUserPassword('admin','pass123'); 修改用户密码

db.auth('admin', 'pass123') 验证用户密码是否正确

posted @   每日一坑  阅读(385)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示