安装
vi /etc/yum.repos.d/mongodb-org-7.0.repo
创建,输入以下内容
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
yum install -y mongodb-org # 安装
systemctl start mongod # 启动
systemctl daemon-reload # Failed to start mongod.service: Unit mongod.service not found.
systemctl status mongod # 状态
systemctl enable mongod # 自启
systemctl stop mongod # 停止
systemctl restart mongod # 重启
# 停服务后 卸载
yum erase $(rpm -qa | grep mongodb-org)
# 删除 MongoDB 数据库和日志文件
rm -r /var/log/mongodb
rm -r /var/lib/mongo
处理警告:vm.max_map_count is too low
sysctl -w vm.max_map_count=262144
ref:https://stackoverflow.com/questions/51445846
配置
vi /etc/mongod.conf
远程端口
默认为本机端口,开放远程端口,修改配置文件参数 bindIp: 0.0.0.0
遇到重启服务失败,删除 /tmp/mongodb-27017.sock
文件再启,
ls -lh /tmp/mongodb-27017.sock # 看到所属不为 mongod 则有问题
开启授权
创建账号之后
security:
authorization: enabled
管理
ls -lh /usr/bin/ | grep mongo*
mongosh
show dbs -- 显示数据库
show users -- 显示用户
db.getUsers()
db.system.users.find()
db.getUser("admin") -- 查询单用户
db.system.users.find({user:"admin"})
use admin -- 切换到 admin
-- 创建 root 用户
db.createUser({
user: "root",
pwd: "Abc1230...",
roles: [{ role: "root", db: "admin" }]
})
-- 创建 管理员
db.createUser({
user: "admin",
pwd: "admin",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
-- 删除用户
db.dropUser("admin")
-- 删除所有用户
db.dropAllUsers()
-- 删除用户
db.system.users.remove({user:"admin"})
-- 删除所有用户
db.system.users.remove({})
-- 身份验证
db.auth("admin", passwordPrompt()) -- 提示输入密码
db.auth("admin", "admin") -- 明文密码
-- 修改用户密码
db.changeUserPassword("admin", passwordPrompt())
db.changeUserPassword("admin", "123")
db.updateUser("admin", {pwd:"123"})
gui MongoDB Compass
https://www.mongodb.com/try/download/compass