【保姆级教程-Centos7环境下部署mongodb并设置开机自启】

一、安装包下载

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.27.tgz

二、安装启动

tar -zxvf mongodb-linux-x86_64-rhel70-4.0.27.tgz # 解压
mv mongodb-linux-x86_64-rhel70-4.0.27 /usr/local/mongodb # 重命名
cd /usr/local/mongodb/
mkdir data data/db data/log
sudo chmod 666 data/db data/log/

vim mongodb.conf # 添加以下配置

# 数据库数据存放目录
dbpath=/usr/local/mongodb/data/db
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log
# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0

vim /etc/profile # 配置环境变量,添加以下内容

export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile # 刷新配置

mongod -f /usr/local/mongodb/mongodb.conf # 启动mongodb

在这里插入图片描述

三、连接数据库创建用户

启动 MongoDB 服务默认是没有账号密码的,即连接上即可进行各种操作。
内置角色

  • 数据库用户角色:read、readWrite
  • 数据库管理角色:dbAdmin、dbOwner、userAdmin
  • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
  • 备份恢复角色:backup、restore
  • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、- userAdminAnyDatabase、dbAdminAnyDatabase
  • 超级用户角色:root
  • 内部角色:__system
mongo

在这里插入图片描述

# 创建管理员账号
mongo # 进入数据库

use admin # 切换到 admin 数据库

db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) # 创建admin用户,可以管理用户(创建/修改用户权限),不能直接读写数据。
 
db.auth("admin","123456")

mongo -u admin -p 123456 --authenticationDatabase admin

use admin

db.createUser({
  user: "student",
  pwd: "123456",
  roles: [
    { role: "readWrite", db: "studentAdmin" }
  ]
}) # 创建新用户 student,并授予其对 studentAdmin 数据库的读写权限

db.getUser("student") # 确认用户已成功创建

mongo -u student -p 123456 --authenticationDatabase admin # 使用新用户连接

use studentAdmin

db.students.insertOne({
  studentId: "S001",
  name: "Bob",
  age: 21,
  major: "Mathematics"
})# 插入数据

在这里插入图片描述

测试连接成功
在这里插入图片描述

四、设置开机自启

mongod -f /usr/local/mongodb/mongodb.conf  --shutdown # 先停止服务

vi /lib/systemd/system/mongodb.service # 创建开机启动配置文件

[Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
[Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
    PrivateTmp=true
[Install]
    WantedBy=multi-user.target

systemctl start mongodb.service # 启动服务
systemctl enable mongodb.service # 设置开机自启
ystemctl daemon-reload # 修改 mongodb.service文件时,重新加载文件
systemctl status mongodb.service # 查看状态

在这里插入图片描述

<think>嗯,我现在需要在CentOS 7部署MongoDB,不过我之前没怎么接触过这个系统,也不太熟悉MongoDB的安装步骤。首先,我应该从哪里开始呢?可能需要先了解一下MongoDB的官方文档有没有针对CentOS 7的指南,或者有没有社区的教程可以参考。记得以前在Ubuntu上安装软件通常是用apt,但CentOS用的是yum或者dnf,对吧?不过CentOS 7可能还是主要用yum。 首先,应该确保系统已经更新到最新状态。可能需要运行sudo yum update来更新所有包。这一步应该没问题,但有时候更新后需要重,不过可能暂时不需要。 接下来,添加MongoDB的仓库。因为默认的CentOS仓库可能没有最新版本的MongoDB,或者根本没有。所以需要配置MongoDB的官方仓库。MongoDB的官方网站应该提供了.repo文件,需要下载到/etc/yum.repos.d/目录下。例如,创建一个mongodb-org-6.0.repo文件,里面配置正确的仓库地址。这里可能需要使用baseurl指定正确的URL,设置GPG密钥。可能需要使用gpgkey参数指向GPG密钥的URL,确保软件包的完整性。 添加完仓库后,就可以使用yum install命令安装MongoDB了。可能需要安装mongodb-org这个包,它会包含服务器、客户端工具等组件。安装完成后,需要动服务,设置开机。服务名称可能是mongod,所以需要用systemctl start mongod和systemctl enable mongod。 然后,可能需要检查MongoDB是否正常运行。可以通过systemctl status mongod查看状态,或者使用mongo命令连接本地的实例。不过,现在MongoDB的新版本可能已经改用mongosh作为客户端了,所以可能需要安装mongosh或者仍然使用mongo。这点可能需要查证一下。 另外,防火墙的问题。CentOS 7默认使用firewalld,所以需要开放27017端口,允许外部访问。命令应该是firewall-cmd --zone=public --add-port=27017/tcp --permanent,然后重载防火墙规则。不过如果只是本地使用,可能不需要开端口,但如果是远程访问的话就需要了。 还有SELinux的问题,可能会阻止MongoDB的正常运行。如果遇到权限问题,可能需要调整SELinux策略,或者暂时禁用SELinux,但这在生产环境中不推荐。可能需要设置适当的SELinux规则,或者将MongoDB的数据目录和日志目录的上下文正确配置。 数据存储方面,默认的数据目录是/var/lib/mongo,日志目录是/var/log/mongodb。需要确保这些目录存在,且mongod用户有权限写入。如果用户自行指定了其他目录,需要修改配置文件/etc/mongod.conf中的storage.dbPath和systemLog.path参数。 配置文件的位置可能在/etc/mongod.conf,里面可以调整绑定IP,默认是127.0.0.1,只能本地访问。如果需要远程访问,应该改成0.0.0.0,确保防火墙设置正确。但开放到公网的话,还需要设置认证,否则会有安全风险。MongoDB默认安装后是没有用身份验证的,所以需要创建用户,用auth选项。 安全方面,建议用访问控制和创建管理员用户。步骤可能包括连接到MongoDB实例,然后使用admin数据库,创建用户,赋予适当的角色,比如userAdminAnyDatabase或者root角色。然后在配置文件中设置security.authorization为enabled,重服务生效。 可能还需要考虑是否要配置副本集或者分片,但如果是单机部署的话,这些暂时不需要。另外,日志管理,备份策略,性能调优等方面也需要后续处理,但基础安装的话可能先不考虑这些。 总结一下,步骤大概是:更新系统,添加MongoDB仓库,安装软件包,动服务,配置防火墙和SELinux,调整配置文件,用认证,创建用户。中间可能会遇到各种问题,比如依赖问题,权限问题,服务动失败,端口不通等,需要逐一排查。比如,如果动失败,查看日志文件/var/log/mongodb/mongod.log中的错误信息,根据提示解决问题。例如,数据目录权限不正确,或者端口被占用等。 可能还需要验证安装是否成功,通过客户端连接执行简单的命令,比如show dbs,或者创建一个测试数据库。同时检查是否能远程连接(如果配置了的话)。另外,安装完成后可能需要做一些基本的优化,比如调整文件描述符限制,内核参数等,以支持高发访问,但基础安装可能可以跳过这些,等有需要时再处理。 总的来说,步骤应该没错,但实际执行时可能会遇到具体的问题,需要根据错误信息进行调整。比如,可能仓库的GPG密钥不可用,需要手动导入,或者网络问题导致无法下载包。这时候可能需要检查仓库配置是否正确,或者临时关闭防火墙进行测试。总之,按照官方文档的步骤来,应该可以顺利完成部署。</think>在CentOS 7环境部署MongoDB的步骤如下: --- ### **1. 更新系统** ```bash sudo yum update -y ``` --- ### **2. 添加MongoDB仓库** 创建仓库配置文件 `/etc/yum.repos.d/mongodb-org-6.0.repo`,内容如下: ```ini [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc ``` --- ### **3. 安装MongoDB** ```bash sudo yum install -y mongodb-org ``` --- ### **4. 动服务设置开机** ```bash sudo systemctl start mongod sudo systemctl enable mongod ``` --- ### **5. 验证服务状态** ```bash sudo systemctl status mongod ``` 输出应显示 `active (running)`。 --- ### **6. 配置防火墙(可选)** 开放默认端口 `27017`: ```bash sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent sudo firewall-cmd --reload ``` --- ### **7. 修改配置文件(按需)** 编辑 `/etc/mongod.conf`: - **绑定IP**(允许远程访问): ```yaml net: bindIp: 0.0.0.0 # 默认是127.0.0.1 ``` - **用认证**(需重服务生效): ```yaml security: authorization: enabled ``` --- ### **8. 创建管理员用户** 1. 连接MongoDB: ```bash mongosh ``` 2. 执行以下命令: ```javascript use admin db.createUser({ user: "admin", pwd: "your_password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] }) ``` 退出客户端:`exit` --- ### **9. 重服务使配置生效** ```bash sudo systemctl restart mongod ``` --- ### **10. 验证连接** ```bash mongosh -u admin -p your_password --authenticationDatabase admin ``` 执行 `show dbs` 确认权限正常。 --- ### **常见问题排查** - **权限问题**:确保 `/var/lib/mongo` 和 `/var/log/mongodb` 的所属用户为 `mongod`。 ```bash sudo chown -R mongod:mongod /var/lib/mongo sudo chown -R mongod:mongod /var/log/mongodb ``` - **SELinux拦截**:临时禁用(不推荐生产环境): ```bash sudo setenforce 0 ``` 或配置SELinux规则。 --- ### **总结** 通过以上步骤,您已完成MongoDB的基础部署。后续可根据需求配置副本集、分片集群或优化性能参数。若需更严格的安全策略,建议: 1. 限制访问IP。 2. 用TLS加密。 3. 定期备份数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值