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