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
相关推荐
jiayou6414 小时前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤1 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
AI全栈实验室3 天前
MongoDB迁移金仓踩了5个坑,最后一个差点回滚
mongodb
随逸1773 天前
《从零搭建NestJS项目》
数据库·typescript
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐3 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再3 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest3 天前
数据库SQL学习
数据库·sql