MongoDB 4.4.30安装、数据迁移

MongoDB安装

目前安装的版本是4.4.30

安装教程是centos7系统,如果操作系统不符合,请去官网下载(官网地址:https://www.mongodb.com/try/download/community)

Linux下安装

1、获取MongoDB安装包

powershell 复制代码
# linux 下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.30.tgz

2、解压安装包

powershell 复制代码
# 上传或下载都放在/usr 文件夹下
[root@localhost ~]# cd /usr
[root@localhost usr]# tar zxvf mongodb-linux-x86_64-rhel70-4.4.30.tgz
# 修改文件夹名称
[root@localhost usr]# mv mongodb-linux-x86_64-rhel70-4.4.30 mongodb

3、配置环境变量

powershell 复制代码
[root@localhost usr]# vim /etc/profile
# 在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:
#Set Mongodb
export PATH=/usr/mongodb/bin:$PATH
# 保存后通过下面的命令使环境变量生效
[root@localhost usr]# source /etc/profile

4、创建数据库目录

powershell 复制代码
[root@localhost usr]# cd /usr/mongodb
[root@localhost mongodb]# touch mongodb.conf
[root@localhost mongodb]# mkdir db
[root@localhost mongodb]# mkdir log
[root@localhost mongodb]# cd log
[root@localhost log]# touch mongodb.log

5、修改mongodb配置文件

powershell 复制代码
[root@localhost usr]# vim /usr/mongodb/mongodb.conf
# 添加如下内容
port=27017 #端口
dbpath= /usr/mongodb/db #数据库存文件存放目录
logpath= /usr/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
noauth=true #不启用验证
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0  #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB

6、设置文件夹权限

powershell 复制代码
[root@localhost mongodb] chmod 777 db
[root@localhost mongodb] chmod 777 log

7、启动mongodb

powershell 复制代码
# 启动MongoDB
[root@localhost mongodb] ./bin/mongod --config mongodb.conf
[root@localhost mongodb] cd bin
# 进入MongoDB
[root@localhost mongodb] ./mongo

linux下配置auth

1、创建管理员账号

powershell 复制代码
#登录mongodb服务器进入mongodb
#切换进入admin库
use admin;
#创建超级管理员权限
db.createUser({user: "admin",pwd: "123456!@#",roles: [ { role: "userAdminAnyDatabase", db: "admin" },{ role: "clusterAdmin", db: "admin" },{ role: "readAnyDatabase", db: "admin" },{ role: "backup", db: "admin" },{ role: "readWriteAnyDatabase", db: "admin" },{ role: "restore", db: "admin" } ]})

2、关闭mongodb数据库

powershell 复制代码
#安全关闭mongodb数据库
#切换到admin库 
use admin
#关闭服务 
db.shutdownServer()

3、修改配置文件

powershell 复制代码
#修改配置文件/usr/mongodb/mongodb.conf
把noauth=true改成auth=true

4、启动mongodb数据库

powershell 复制代码
#启动mongodb数据库
参照上面的启动mongodb命令
#验证
#切换到admin
use admin
#登录 返回1  说明登录成功
db.auth('admin','123456!@#')

linux(centos7)下配置开机启动

1、创建mongodb.service文件,并编辑

powershell 复制代码
vim /lib/systemd/system/mongodb.service

复制以下内容

powershell 复制代码
[Unit]
 
Description=mongodb
 
After=network.target remote-fs.target nss-lookup.target
 
[Service]
 
Type=forking
 
ExecStart=/usr/mongodb/bin/mongod --config /usr/mongodb/mongodb.conf
 
ExecReload=/bin/kill -s HUP $MAINPID
 
ExecStop=/usr/mongodb/bin/mongod --shutdown --config /usr/mongodb/mongodb.conf
 
PrivateTmp=true

[Install]
 
WantedBy=multi-user.target

2、操作命令

powershell 复制代码
mog#重新加载配置  
systemctl daemon-reload
#启动服务
systemctl start mongodb.service
#开机启动
systemctl enable mongodb.service
#关闭服务
systemctl stop mongodb.service
#查看状态
systemctl status mongodb.service

linux数据迁移

首先要下载MongoDB工具,默认安装MongoDB服务器是没有这些数据库工具的

powershell 复制代码
# 直接下载安装包 官方下载地址:https://www.mongodb.com/download-center/community

# linux 下载
  wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel70-x86_64-100.12.2.tgz
powershell 复制代码
#在安装目录下  创建一个tool目录
cd /usr/mongodb
#创建一个tool目录
mkdir -p tool
cd tool
#把下载的包移到这个目录下并解压
tar zxvf mongodb-database-tools-rhel70-x86_64-100.12.2.tgz
#把解压后的bin目录下的脚本复制到MongoDB的安装目录
 cp -f mongodb-database-tools-rhel70-x86_64-100.12.2/bin/* /usr/mongodb/bin/

auth=true

powershell 复制代码
#先检查配置用户的权限,如果是两个机器,超管用户和权限要一致
cd /usr/mongodb/bin
./mongo
>use admin
>db.getUser('admin') #查看role有哪些 之前部署文档只有一个,要添加其他的role
>db.grantRolesToUser("admin", [
{ role: "clusterAdmin", db: "admin" },
  { role: "readAnyDatabase", db: "admin" },
  { role: "backup", db: "admin" },
  { role: "readWriteAnyDatabase", db: "admin" },
  { role: "restore", db: "admin" }
])
#执行完成后再看db.getUser('admin')查看一下权限

#退出MongoDB命令行

#在原服务器执行导出命令 
cd /usr/mongodb/bin
./mongodump --host 127.0.0.1 --port 27017 --username <username> --password <password> --authenticationDatabase admin --out /usr/mongodb/backup/
#用户和密码根据现场情况需要修改,如下示例 如果密码有特殊字符需要用单引号包裹
#./mongodump --host 127.0.0.1 --port 27017 --username admin --password '123456!@#' --authenticationDatabase admin --out /usr/mongodb/backup/

#导出完成后将备份的文件复制到新服务器中,文件目录及IP根据现场调整
scp -r /usr/mongodb/backup/ user@ip:/usr/mongodb/
#示例
#scp -r /usr/mongodb/backup/ root@172.30.104.208:/usr/mongodb/

#在新服务器上执行导入命令
cd /usr/mongodb/bin
./mongorestore --host 127.0.0.1 --port 27017 --username <username> --password <password> --authenticationDatabase admin /usr/mongodb/backup/
#用户和密码根据现场情况需要修改,如下示例 如果密码有特殊字符需要用单引号包裹
#./mongorestore --host 127.0.0.1 --port 27017 --username admin --password '123456!@#' --authenticationDatabase admin /usr/mongodb/backup/

noauth=true

powershell 复制代码
#在原服务器执行导出命令 
cd /usr/mongodb/bin
./mongodump --host 127.0.0.1 --port 27017  --out /usr/mongodb/backup/

#导出完成后将备份的文件复制到新服务器中,文件目录及IP根据现场调整
scp -r /usr/mongodb/backup/ user@ip:/usr/mongodb/
#示例
#scp -r /usr/mongodb/backup/ root@172.30.104.208:/usr/mongodb/

#在新服务器上执行导入命令
cd /usr/mongodb/bin
./mongorestore --host 127.0.0.1 --port 27017  /usr/mongodb/backup/

常见问题

1、龙蜥8.9启动报错问题

powershell 复制代码
yum install -y compat-openssl10
相关推荐
benyuanone2 小时前
MySQL环境项目迁移成国产化达梦环境
数据库·mysql
北凉军2 小时前
java连接达梦数据库,用户名是其他库的名称无法指定库,所有mapper查询的都是以用户名相同的库内的表
java·开发语言·数据库
尽兴-2 小时前
MySQL索引优化:从理论到实战
数据库·mysql·优化·b+树·索引·最左前缀
ZKNOW甄知科技2 小时前
IT自动分派单据:让企业服务流程更智能、更高效的关键技术
大数据·运维·数据库·人工智能·低代码·自动化
小光学长3 小时前
基于Web的长江游轮公共服务系统j225o57w(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库
Davina_yu3 小时前
2026年节假日表SQL
数据库·sql
是娇娇公主~3 小时前
工厂模式详细讲解
数据库·c++
码农小卡拉4 小时前
数据库:主键 VS 唯一索引 区别详解
java·数据库·sql
廋到被风吹走4 小时前
【数据库】【MySQL】锁机制深度解析:从原理到死锁分析实战
数据库·mysql