一、MongoDB安装
安装依赖包
dnf -y install tar
dnf install libcurl openssl -y
解压安装包
tar zxf mongodb-linux-x86_64-rhel8-8.0.8.tgz
mv mongodb-linux-x86_64-rhel88-8.0.8/ /usr/local/mongodb
软链接
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >>/etc/profile
source /etc/profile
创建两个目录并设置权限
mkdir -p /var/lib/mongo
mkdir -p /var/log/mongodb
chown `whoami` /var/lib/mongo
chown `whoami` /var/log/mongodb
安装openss111依赖包
dnf install -y gcc make perl
tar zxf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w ./config --prefix=/opt/openssl11 --openssldir=/opt/openssl11/ssl
make && make install
设置环境变量
echo 'export LD_LIBRARY_PATH=/opt/openssl11/lib:$LD_LIBRARY_PATH' | sudo tee /etc/profile.d/openssl11.sh
source /etc/profile.d/openssl11.sh
启动mongodb服务
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb.log --fork
ss -nlpt
二、MongoDB shell
1.安装MongoDB shell
解压安装包
tar zxf mongosh-2.5.0-linux-x64-openssl3.tgz
cd mongosh-2.5.0-linux-x64-openssl3
cd bin/
cp mongosh /usr/local/bin/
cp mongosh_crypt_v1.so /usr/local/lib/
2.验证MongoDB shell
mongosh
三、数据库管理
1.查看数据库列表
show dbs
db
2.创建数据库
use runoob
db
show dbs
db.runoob.insertOne({"name":"zhangsan"})
3.操作命令
use myDatabase
db.dropDatabase()
show dbs #查看数据库列表
db #查看当前数据库
use runoob #切换库
db.dropDatabase() #删除数据库,删除数据库需要切换到库里面
db.createCollection("runoob") show collections db.adminCommand({ #重命名数据库 renameCollection: "test.runoob", to: "test.newrunoob" }); db.runoob.insertone({"name":"zhangsan"}) #插入数据
db.newrunoob.drop() #删除集合
db.myCollection.insertOne({ name: "Alice", age: 25, city: "New York" }); #插入一条文档
#在myCollection集合中批量更新所有age小于30的文档将这些文档的status字段设置为 "active" db.myCollection.updateMany( { age: { $lt: 30 } }, { $set: { status: "active" } });
#插入多余文档 db.myCollection.insertMany([ { name: "Bob", age: 30, city: "Los Angeles" }, { name: "Charlie", age: 35, city: "Chicago" }]);
#查询文档 db.myCollection.find();
#删除名字叫alice文档 db.myCollection.deleteOne({ name: "Alice" });
#删除名字叫bob文档 db.myCollection.deleteMany({ name: "Bob" });
#在myCollection集合中找到名字为Charlie文档删除同时返回该文件的name和age字段 db.myCollection.findOneAndDelete( { name: "Charlie" }, { projection: { name: 1, age: 1 } } );
#将alice的age值改成26 db.myCollection.updateOne( { name: "Alice" }, { $set: { age: 26 } });
#创建用户 use admin // 切换到admin数据库(所有管理用户都应该在此数据库创建)
db.createUser({ // 创建用户的命令
user: "admin", // 用户名
pwd: "你的强密码", // 密码(替换为你想要的实际密码)
roles: [ // 分配给用户的权限角色
{ role: "userAdminAnyDatabase", db: "admin" }, // 可以管理所有数据库的用户
"readWriteAnyDatabase" // 可以读写所有数据库 ]
})
四、备份与恢复
1.安装备份与恢复命令
rpm -ivh mongodb-database-tools-rhel70-x86_64-100.12.0.rpm
mongodump
mongosh
db.myCollection.deleteOne({ name: "Alice" });
db.myCollection.deleteMany({ name: "Bob" });
#恢复
mongorestore
使用用户登录
#创建用户 db.createUser({ user: "testuser", pwd: "password123", roles: [ { role: "readWrite", db: "test" }, { role: "dbAdmin", db: "test" } ]})
#验证用户 db.auth("testuser", "password123")
#重启服务 pkill mongod mongod --auth --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
#使用用户登录 mongosh -u "testuser" -p "password123" --authenticationDatabase "test"