Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • linux上安装mongodb

linux上安装mongodb

MongoDB的安装过程 1.第一步下载mongodb的安装包

cd /usr/local/

 mkdir mongodb
 cd mongodb
 mkdir data
 mkdir logs
 cd logs
 touch mongodb.log

mkdir -p soft/mongodb
cd  /soft/mongodb

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-5.0.4.tgz

tar -zxvf mongodb-linux-x86_64-rhel80-5.0.4.tgz  

mv mongodb-linux-x86_64-rhel80-5.0.4  /usr/local/mongodb/

5.配置环境变量 命令如下:

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

应用下配置文件

source /etc/profile

添加 MongoDB 配置文件 常用的配置选项:

bind_ip:指定MongoDB监听的IP地址。默认为127.0.0.1,表示只监听本地回环地址。如果你希望MongoDB能够通过网络访问,可以将该选项设置为0.0.0.0,表示监听所有可用的IP地址。

port:指定MongoDB监听的端口号。默认为27017,通常不需要修改。

dbpath:指定MongoDB数据文件存储的路径。默认为/var/lib/mongodb。

logpath:指定MongoDB日志文件的路径。默认为/var/log/mongodb/mongod.log。

logappend:指定是否在日志文件末尾追加日志。默认为false,表示每次启动MongoDB时,会清空日志文件。

journal.enabled:指定是否启用Journaling,用于数据持久性和恢复。默认为true,建议保持默认值。

storage.wiredTiger.engineConfig.cacheSizeGB:指定WiredTiger存储引擎的缓存大小,单位为GB。默认为总系统内存的一半,建议根据实际情况调整。

security.authorization:指定是否启用身份验证。默认为disabled,表示不启用身份验证。在生产环境中,建议将该选项设置为enabled,并配置合适的用户和角色权限。

replication.replSetName:指定复制集的名称。默认为空,表示不启用复制集。如果需要使用复制集功能,可以将该选项设置为一个非空的名称。

net.maxIncomingConnections:指定MongoDB最大允许的入站连接数。默认为65536,根据实际情况进行调整。

processManagement.fork:指定是否在后台运行MongoDB进程。默认为true,表示在后台运行。如果需要在前台运行,可以将该选项设置为false。

touch /usr/local/mongodb/etc/mongodb.conf

mongodb.conf的内容

dbpath=/usr/local/mongodb/data

logpath=/usr/local/mongodb/logs/mongodb.log

logappend=true

port=27017 

bind_ip=0.0.0.0

fork=true 

#auth=true 

#bind_ip=0.0.0.0 
```js

7.启动mongodb服务
命令如下:
cd usr/local/mongodb/mongodb-linux-x86_64-rhel80-5.0.4/bin

./mongod --config /usr/local/mongodb/etc/mongodb.conf

如果报错的话

./mongod: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

[root@iv-ye39k0b2805i3z5gsheu bin]# yum install -y libcrypto.so.*


启动服务之后测试,进入数据库:
./mongo localhost:27017

开放防火墙的 27017 端口

四、MongoDB用户管理
创建用户
切换到admin数据库:

use admin

创建管理员admin:

db.createUser({ user: "admin", pwd: "123456", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" } ]});


- 参数释义:
    * roles:数组形式,配置具体权限
        + `role: "readWriteAnyDatabase"`表示有读写任意数据库的权限
        + `db: "admin"`,表示:当前权限只对`admin`数据库生效
- `admin`数据库,是 MongoDB 的管理级的特殊数据库,是有特殊意义的。
- 所以`readWriteAnyDatabase`这个权限虽然设置给了`admin`数据库,但实际上,`admin`数据库里还拥有`readWriteAnyDatabase`这个权限的`admin`用户,所以,该用户对任意数据库都具有读写的功能,不只局限在`admin`数据库。
- **注意**:只有`admin`数据库,才有`readWriteAnyDatabase`权限,如果是自己创建的数据库,无法为用户设置`readWriteAnyDatabase`权限,会报错该数据库没有这个权限的用户。

创建超级管理员root:

db.createUser({ user: "root", pwd: "123456", roles: [ { role: "root", db: "admin" } ]});


- `root`权限也只能放在`admin`数据库内才能生效
- `root`是最高权限,可以做任何事情

创建普通用户zhangsan:

db.createUser({ user: "zhangsan", pwd: "123456", roles: [ { role: "readWrite", db: "school" }, { role: "userAdmin", db: "school" }, { role: "readWrite", db: "myBlog" }, { role: "userAdmin", db: "myBlog" } ]});


MongoDB常用权限
read:允许读取指定数据库中数据的权限。
readWrite:允许读、写指定数据库中数据的权限。
dbAdmin:允许对指定数据库中执行管理函数的权限,如索引创建、删除,查看统计或访问 system.profile。
userAdmin:允许对指定数据库执行用户管理的权限,比如创建、删除和修改用户。
dbOwner:允许对指定数据库执行任何管理操作。该角色结合了readWrite 、 dbAdmin和userAdmin角色授予的权限。
**readAnyDatabase**
只对admin数据库可用,授予用户对所有数据库的read权限。
readWriteAnyDatabase:
只对admin数据库可用,授予用户对所有数据库的readWrite权限。
userAdminAnyDatabase:
只对admin数据库可用,授予用户对所有数据库的userAdmin权限。
dbAdminAnyDatabase:
只对admin数据库可用,授予用户对所有数据库的dbAdmin权限。
root:
只对admin数据库可用。超级账号,超级权限。
修改密码

db.updateUser("用户名", {pwd: "新密码"})


删除用户

db.dropUser("用户名")

Edit this page
最近更新: 2025/12/2 01:46
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人