在CentOS上使用MongoDB时,遵循最佳实践是非常重要的,以确保数据库的性能、安全性和可维护性。以下是一些关键的最佳实践:
使用YUM仓库安装:
sudo vi /etc/yum.repos.d/mongodb-org-6.0.repo
在文件中添加以下内容(适用于MongoDB 6.0版本):[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
sudo yum install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
security:
  authorization: enabled
sudo vi /etc/security/limits.conf
加入如下内容:mongod soft nofiles 64000
mongod soft nproc 64000
use admin
db.createUser({
  user: "admin",
  pwd: "your_password",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" }
  ]
})
storage:
  wiredTiger:
    engineConfig:
      cacheSizeGB: value
replication:
  oplogSizeMB: value
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  logRotate: reindex
replication:
  journal:
    commitIntervalMs: value
    syncPeriodSecs: value
operationProfiling:
  mode: slowOp
sudo sysctl -w fs.file-max=100000
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
echo never | sudo tee /proc/sys/vm/dirty_background_ratio
echo 100 | sudo tee /proc/sys/vm/dirty_ratio
/etc/mongod.conf,在 security 部分设置 authorization: enabled,然后重启MongoDB服务以应用配置变更:sudo systemctl restart mongod
mongo -u root -p --authenticationDatabase "admin"
创建管理员用户并为其分配角色和权限:use admin
db.createUser({
  user: "admin",
  pwd: "your_password",
  roles: [
    { role: "root", db: "admin" }
  ]
})
/etc/mongod.conf 配置文件中添加 bindIp 参数,指定允许连接的IP地址或主机名:net:
  port: 27017
  bindIp: 192.168.1.100 # 替换为你的服务器IP地址
/etc/mongod.conf 配置文件中添加以下配置并重启服务:net:
  ssl:
    mode: requireSSL
    PEMKeyFile: /path/to/mongodb-cert.pem
mongostat 和 mongotop 定期检查系统性能指标。explain() 方法分析查询的执行计划,根据分析结果优化索引。通过遵循这些最佳实践,您可以在CentOS上高效、安全地运行MongoDB。