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
相关推荐
野犬寒鸦16 分钟前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
晚霞的不甘1 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
市场部需要一个软件开发岗位2 小时前
JAVA开发常见安全问题:纵向越权
java·数据库·安全
海奥华22 小时前
mysql索引
数据库·mysql
2601_949593653 小时前
深入解析CANN-acl应用层接口:构建高效的AI应用开发框架
数据库·人工智能
javachen__3 小时前
mysql新老项目版本选择
数据库·mysql
Dxy12393102163 小时前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql
Dying.Light3 小时前
MySQL相关问题
数据库·mysql
蜡笔小炘4 小时前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs
韩立学长4 小时前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游