Ubuntu安装mongodb /2

本文提供了一套详细的步骤来帮助您在Ubuntu不同版本上安装MongoDB,包括导入公钥、创建软件源列表、更新软件源、安装配置启动文件、启动及卸载等操作,并附带了添加PHP扩展的方法。

1.导入软件源的公钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

2.为mongodb创建软件源list文件 
ubuntu12.04

echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

ubuntu14.04

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  •  

ubuntu16.04

echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  •  

3.更新软件源并安装mongodb


 
  1. sudo apt-get update

  2. sudo apt-get install -y mongodb-org

sudo apt-get install -y mongodb-org=3.2.9 mongodb-org-server=3.2.9 mongodb-org-shell=3.2.9 mongodb-org-mongos=3.2.9 mongodb-org-tools=3.2.9
  • 4.配置启动文件 
    如果是ubuntu16.04的版本,需要手动新建/lib/systemd/system/mongod.service文件,并写入下面内容:

 
  1. [Unit]

  2. Description=High-performance, schema-free document-oriented database

  3. After=network.target

  4. Documentation=https://docs.mongodb.org/manual

  5.  
  6. [Service]

  7. User=mongodb

  8. Group=mongodb

  9. ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

  10.  
  11. [Install]

  12. WantedBy=multi-user.target

5.启动、重启和关闭命令


 
  1. sudo service mongod start

  2. sudo service mongod restart

  3. sudo service mongod stop

6.mongodb的完全卸载 
先停止运行mongodb

sudo service mongod stop

再卸载软件

sudo apt-get purge mongodb-org*

删除数据库和日志文件


 
  1. sudo rm -r /var/log/mongodb

  2. sudo rm -r /var/lib/mongodb

7.添加php的mongodb扩展


 
  1. # pecl install mongodb

  2. # echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

### 停止 MongoDB 脚本时的错误处理及路径问题分析 在 Ubuntu 16.04 系统中,如果 `stop-mongodb.sh` 脚本出现错误,通常与以下几个方面有关:MongoDB 二进制文件路径配置不正确、进程未正常关闭或脚本逻辑存在问题。以下是对问题的详细分析和解决方案。 #### 1. 检查 MongoDB 二进制文件路径 确保 `mongod` 和 `mongo` 二进制文件路径已正确配置到环境变量中。如果路径未正确设置,脚本可能无法找到 MongoDB 的可执行文件。可以通过以下方式验证路径是否正确: ```bash which mongod ``` 若返回为空,则需要手动添加路径到环境变量中。根据引用内容[^2],可以将 MongoDB安装路径添加到 `$PATH` 中: ```bash export PATH=/usr/local/mongodb/bin:$PATH source /etc/profile ``` #### 2. 检查 `stop-mongodb.sh` 脚本逻辑 一个典型的停止 MongoDB 的脚本可能如下所示: ```bash #!/bin/bash # 定义 MongoDB 二进制文件路径 MONGOD_BIN="/usr/local/mongodb/bin/mongod" # 检查 MongoDB 是否正在运行 if pgrep -x "mongod" > /dev/null; then echo "Stopping MongoDB..." $MONGOD_BIN --shutdown --dbpath=/data/mongodb/mongo --logpath=/data/mongodb/mongod2.log if [ $? -eq 0 ]; then echo "MongoDB stopped successfully." else echo "Failed to stop MongoDB." fi else echo "MongoDB is not running." fi ``` 上述脚本中: - 使用 `pgrep` 检查 MongoDB 进程是否存在。 - 如果存在,则通过 `--shutdown` 参数停止 MongoDB 实例。 - 需要确保 `--dbpath` 和 `--logpath` 参数与实际配置一致。 #### 3. 错误排查步骤 - **路径问题**:如果脚本中定义的 `MONGOD_BIN` 路径不正确,会导致 `mongod` 命令不可用。可以通过以下命令确认路径: ```bash ls -l /usr/local/mongodb/bin/mongod ``` 如果路径不存在,则需要重新安装 MongoDB 或调整路径。 - **权限问题**:确保脚本和相关目录具有正确的执行权限。可以使用以下命令检查并修复权限: ```bash chmod +x /path/to/stop-mongodb.sh chmod -R 755 /data/mongodb/ ``` - **日志分析**:查看 MongoDB 日志文件(如 `/data/mongodb/mongod2.log`),定位具体的错误信息。例如,日志中可能会显示以下错误: ```text failed to open file: /data/mongodb/mongo/db.lock ``` 这通常表明 MongoDB 数据目录存在问题,可以尝试删除锁文件后重启服务: ```bash rm -f /data/mongodb/mongo/db.lock ``` #### 4. MongoDB 3.6.20 的特殊注意事项 MongoDB 3.6.20 版本对某些功能的支持有限,尤其是在数组索引和唯一性约束方面。根据引用内容[^4],虽然数组索引上的唯一性约束可以保证不同文档之间的元素不重复,但无法阻止同一文档内重复元素的存在。因此,在应用层需要额外处理重复数据。 #### 5. 示例代码:改进后的 `stop-mongodb.sh` 以下是一个改进版本的停止脚本,包含错误处理逻辑: ```bash #!/bin/bash # 定义 MongoDB 二进制文件路径 MONGOD_BIN="/usr/local/mongodb/bin/mongod" DB_PATH="/data/mongodb/mongo" LOG_PATH="/data/mongodb/mongod2.log" # 检查 MongoDB 是否正在运行 if ! pgrep -x "mongod" > /dev/null; then echo "MongoDB is not running." exit 0 fi echo "Stopping MongoDB..." # 尝试停止 MongoDB $MONGOD_BIN --shutdown --dbpath=$DB_PATH --logpath=$LOG_PATH if [ $? -ne 0 ]; then echo "Failed to stop MongoDB. Check logs for details." exit 1 fi echo "MongoDB stopped successfully." ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值