MongoDB-4.4-单机部署

1、简介

# MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。
# MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。
# 它是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案。
# 它支持的数据结构非常松散,会将数据存储为一个文档,数据结构由键值对(key=>value)组成,是类似于json的bson格式,字段值可以包含其它文档、数组和文档数组,因此可以存储比较复杂的数据类型。

2、下载安装 MongoDB

cd /data
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.4.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgz -C /usr/local
mv /usr/local/mongodb-linux-x86_64-rhel70-4.4.4 /usr/local/mongodb

3、配置 MongoDB

cd /usr/local/mongodb/
mkdir data logs conf
创建mongo配置文件
vim conf/mongodb.conf
systemLog:
    quiet: false
    path: /usr/local/mongodb/logs/mongodb.log
    logAppend: false
    destination: file
processManagement:
    fork: true
    pidFilePath: /usr/local/mongodb/bin/mongodb.pid
net:
    bindIp: 0.0.0.0
    port: 27017
    maxIncomingConnections: 65536
    wireObjectCheck: true
storage:
    dbPath: /usr/local/mongodb/data
    journal:
        enabled: true
operationProfiling:
    slowOpThresholdMs: 100
    mode: off
security:
    authorization: enabled
vim /etc/systemd/system/mongodb.service

内容:
[Unit]  
Description=mongodb  
After=network.target remote-fs.target nss-lookup.target  
  
[Service]  
Type=forking  
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/usr/local/mongodb/bin/mongodb.pid
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf  
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/conf/mongodb.conf  
PrivateTmp=false  
  
[Install]  
WantedBy=multi-user.target
服务命令:


systemctl start mongodb.service     #启动服务

systemctl stop mongodb.service      #停止服务

systemctl restart mongodb.service   #重新启动服务

systemctl status mongodb.service    #查看服务当前状态

systemctl enable mongodb.service    #设置开机自启动

systemctl disable mongodb.service   #停止开机自启动
vim /etc/profile
export PATH=$PATH:/usr/local/mongodb/bin
source /etc/profile
客户端连接:
mongo
# 客户端连接:
Mongo
# 切换到admin库
use admin
# 创建admin库 账户密码
db.createUser({ user: "admin", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
# 退出 mongodb
Exit
# 使用 admin账户登录
mongo -u admin -p 123456
# 认证登录账户
db.auth('admin','123456')
# 切换到dev 库
use dev
# 创建 dev 库用户密码
db.createUser({user: "root",pwd: "666666",roles: [ { role: "readWrite", db: "dev" } ]})
# 认证登录账户
db.auth('root','666666')
# 向dev插入数据
db.dev.insert({"name":"hello world"})
# 将 数据 导入到dev库
./bin/mongorestore -u root -p 666666 -d dev ./dev/
如果出现非正常关闭服务,处理方案:

复制代码
解决办法:
1)删除数据目录/usr/local/mongodb/data 下的 mongod.lock 
[root@Mike-Node1 ~]# rm -rf /usr/local/mongodb/data/mongod.lock

2)修复mongodb
[root@Mike-Node1 ~]# /usr/local/mongodb/bin/mongod --logpath --dbpath /usr/local/mongodb/data --repair 

3)删除/usr/local/mongodb/data/journal 下的 j._4 文件(或者将journal下的文件清空)
[root@Mike-Node1 ~]# rm -rf /usr/local/mongodb/data/journal/*j._4
4)然后再次启动 mongodb 就ok了
[root@Mike-Node1 ~]# systemctl start mongodb.service
登录到指定库
mongo --host 10.22.85.208 --port 27017 -u root -p 666666 --authenticationDatabase dev
重置用户
注释mongod.conf的security

查看当前所有账户

db.system.users.find()

删除所有用户

db.system.users.remove({})

创建新的管理员帐号

use admin
db.createUser({user:"xxxx",pwd:"xxxxxxxxxxxxxxxxx",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]})  
posted @ 2021-11-26 17:12  Rocky_940120  阅读(361)  评论(0)    收藏  举报