Linux服务器安装mongodb教程以及可能会遇到的问题

524 阅读1分钟

记录下在服务器上如何安装mongo,之前的开发博客的时候安装mongo时候各种问题,由此记录下安装过程

打开终端并登录到您的Linux服务器

ssh root@ip 

ip自行修改

添加MongoDB仓库,使用以下命令

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

更新包列表

sudo apt-get update

安装MongoDB

sudo apt-get install -y mongodb-org

启动MongoDB

sudo systemctl start mongod

配置MongoDB以在服务器启动时启动

sudo systemctl enable mongod

确认MongoDB正在运行

sudo systemctl status mongod

如果MongoDB正在运行,您将看到一条消息,指示MongoDB正在运行

为MongoDB创建管理员用户

mongo
use admin
db.createUser({ 
    user: "admin", 
    pwd: "password", 
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
} )

请记得将“password”替换为您要使用的密码

安全地启用MongoDB

sudo nano /etc/mongod.conf

找到并注释掉以下行

# bindIp: 127.0.0.1

将以下行添加到文件的底部

security: 
    authorization: enabled

保存并关闭文件

重启MongoDB以使更改生效

sudo systemctl restart mongod

现在,成功在Linux服务器上安装并配置MongoDB

下面是有可能遇到的一些问题,不过我只遇到第4种

  1. Unable to locate package mongodb-org 错误

这个错误可能是因为MongoDB的软件包未能正确添加到系统的软件源中。您可以使用以下命令添加官方MongoDB源

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

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

接下来,更新包列表并尝试重新安装MongoDB。

  1. Failed to start mongod.service: Unit mongod.service not found. 错误

这个错误可能是因为MongoDB的服务未能正确安装和启动。您可以使用以下命令重新安装MongoDB

sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
sudo apt-get install mongodb-org

完成安装后,启动MongoDB

sudo systemctl start mongod

  1. Failed to bind to 127.0.0.1:27017 on error Cannot assign requested address 错误

这个错误可能是因为MongoDB绑定到了错误的IP地址。您可以编辑MongoDB配置文件并将其绑定到正确的IP地址。编辑/etc/mongod.conf文件并找到以下行

bindIp: 127.0.0.1

注释掉这行,并添加以下行

bindIp: 0.0.0.0

保存并关闭文件。现在重新启动MongoDB以使更改生效

  1. MongoDB shell version x.x.x connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb 错误

这个错误可能是因为您的MongoDB实例未启用身份验证。在使用MongoDB之前,请确保已启用身份验证以提高安全性。可以按照上面的步骤为MongoDB创建管理员用户并启用身份验证。然后,使用管理员用户登录MongoDB

mongo -u admin -p --authenticationDatabase admin

以上是一些可能会出现的错误和解决方案。如果您遇到其他错误,请参考MongoDB官方文档