MongoDB数据库很常用.但是有时候难免需要手动部署。这里分享下教程笔记,分享给有需要的小伙伴,需要的可以收藏。
要解压和安装 MongoDB,您可以按照以下步骤操作:
下载:
https://www.mongodb.com/try/download/community
步骤 1: 下载 MongoDB 压缩包
如果您已经下载了 mongodb-linux-x86_64-ubuntu2204-6.0.19.tgz
文件,可以跳过这一步。
步骤 2: 解压 tar.gz 文件
-
打开终端。
-
使用
cd
命令导航到下载文件的目录。例如,如果文件位于~/Downloads
,请运行:cd ~/Downloads
-
使用以下命令解压该文件:
tar -xvzf mongodb-linux-x86_64-ubuntu2204-6.0.19.tgz
这会解压文件并在当前目录下生成一个名为
mongodb-linux-x86_64-ubuntu2204-6.0.19
的目录。
步骤 3: 移动到合适的目录
-
创建一个目录来存放 MongoDB。通常,建议将 MongoDB 移动到
/usr/local/bin
或/opt
:sudo mkdir -p /usr/local/bin/mongodb
-
将解压的文件移动到该目录中:
sudo mv mongodb-linux-x86_64-ubuntu2204-6.0.19/* /usr/local/bin/mongodb/
步骤 4: 设置文件权限
确保 MongoDB 文件夹中的文件具有适当的权限:
sudo chown -R $USER:$USER /usr/local/bin/mongodb
步骤 5: 创建数据和日志目录
MongoDB 需要数据和日志目录来存储数据。您可以使用以下命令创建这些目录:
sudo mkdir -p /data/db
sudo mkdir -p /var/log/mongodb
设置权限:
sudo chown -R $USER:$USER /data/db
sudo chown -R $USER:$USER /var/log/mongodb
步骤 6: 启动 MongoDB
您可以手动启动 MongoDB 服务器,使用以下命令:
/usr/local/bin/mongodb/bin/mongod --dbpath /data/db --logpath /var/log/mongodb/mongo.log --fork
--dbpath
: 指定数据存储的位置。--logpath
: 指定日志文件的位置。--fork
: 在后台运行 MongoDB。
如果没有错误,您应该能看到 MongoDB 正在运行的消息。
步骤 7: 测试 MongoDB
打开新的终端窗口,运行以下命令以启动 MongoDB 客户端:
/usr/local/bin/mongodb/bin/mongo
如果您看到 MongoDB 提示符,说明 MongoDB 已成功启动并可以接受连接。
其他设置(可选)
为了便于使用,您可以将 MongoDB 的 bin 目录添加到您的 PATH 环境变量中:
-
打开终端并运行:
echo 'export PATH=$PATH:/usr/local/bin/mongodb/bin' >> ~/.bashrc source ~/.bashrc
这样您就可以直接使用 mongod
和 mongo
命令,而无需输入完整路径。
完成
现在您已经成功解压和安装了 MongoDB!
如果在成功安装 MongoDB 后找不到 mongosh
,这是因为 mongosh
(MongoDB Shell)是 MongoDB 5.0 及更高版本的一个独立组件,而不是部署在 MongoDB 服务器包中的一部分。
安装 mongosh
您可以通过以下方式安装 mongosh
:
方法 1: 使用 npm 安装
如果您已经安装了 Node.js 和 npm,可以通过以下命令使用 npm 安装 mongosh
:
npm install -g @mongosh/cli-repl
方法 2: 使用 apt
安装(适用于 Debian/Ubuntu)
-
添加 MongoDB 的官方 GPG 密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-6.0.gpg
-
创建一个源列表文件:
echo "deb [signed-by=/usr/share/keyrings/mongodb-6.0.gpg] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
请根据您使用的 Ubuntu 版本调整
focal
(如果是 Ubuntu 22.04,使用jammy
)。 -
更新 apt 包索引并安装
mongosh
:sudo apt update sudo apt install -y mongodb-mongosh
方法 3: 直接下载并安装
您还可以直接下载 mongosh
的二进制包,步骤如下:
-
前往 MongoDB 官方下载页面 MongoDB Shell Download。
-
找到对应您操作系统的
mongosh
版本并下载。 -
解压并将二进制文件移动到合适的目录,例如
/usr/local/bin
:tar -xvzf mongosh-linux-x86_64-*.tgz sudo mv mongosh-linux-x86_64-* /usr/local/bin/mongosh
-
确保文件有执行权限,并将其移动到 PATH 中:
sudo chmod +x /usr/local/bin/mongosh
测试 mongosh
安装完成后,您可以通过终端运行以下命令来启动 mongosh
:
mongosh
端口被占用解决
要查看哪个进程占用了特定端口(例如端口 80),您可以使用以下命令:
1. 使用 lsof
命令
lsof
(List Open Files)是一个显示当前打开文件及其相关进程的工具。使用以下命令来查看占用端口 80 的进程:
sudo lsof -i :80
这将输出正在监听端口 80 的进程信息,包括进程的 PID(进程 ID)、用户、命令等。
2. 使用 netstat
命令
netstat
是一个网络相关的命令行工具,您可以使用它查看网络连接及其状态。使用以下命令来查看占用端口 80 的进程:
sudo netstat -tuln | grep ':80'
这将列出所有监听端口 80 的服务及其相关信息。
3. 使用 ss
命令
ss
是一个比 netstat
更加现代化的工具,性能更高。您可以用以下命令查询正在使用端口 80 的进程:
sudo ss -tuln | grep ':80'
4. 使用 fuser
命令
fuser
命令可以显示与指定文件或套接字相关的进程 ID。您也可以使用它来查找占用端口的进程:
sudo fuser 80/tcp
输出将显示占用端口 80 的进程 PID。
5. 处理占用端口的进程
一旦找到了占用端口的进程,您可以使用 kill
命令终止该进程。假设找到了进程 PID 为 1234,您可以运行以下命令:
sudo kill 1234
如果进程不响应,可以使用强制终止:
sudo kill -9 1234
使用上述命令可以轻松找出哪个进程占用了端口 80,并根据需要结束该进程。请注意在终止进程时,要确保不影响到系统的其他重要服务。
备份和恢复
简单来说,备份数据可恢复数据:
##备份mongodump --uri="mongodb://test1:111111@127.0.0.1:27017/test1" --out=~/dumps/
##恢复
mongorestore --uri="mongodb://test1:111111@127.0.0.1/test1" --nsInclude=test1.* ~/dumps/test1##创建用户
mongosh "mongodb://localhost:27017"
use atomdco
db.createUser({ user: "test1", pwd: "111111", roles: [{ role: "readWrite", db: "atomdco" }] })
基本命令
查看当前数据库
db
切换数据库
use myDatabase
查看所有数据库
show databases
查看当前数据库中的集合
show collections
CRUD操作
插入文档
db.collection.insertOne({ name: "John", age: 30 });
db.collection.insertMany([{ name: "Jane", age: 25 }, { name: "Adam", age: 28 }]);
查询文档
db.collection.find();
db.collection.find({ age: { $gt: 25 } });
小结
以上就是手动安装MongoDB的详细过程.关于如何配置和创建用户和分配权限,详见博主的另外一篇笔记分享:[mongosh常用命令详解及如何开启MongoDB身份验证]https://blog.csdn.net/yyz_1987/article/details/139857777?spm=1001.2014.3001.5502
其他资源
MongoDB Shell Download