相关文章
安装mongodb
系统环境
- 操作系统:CentOS 7.9 64位
- nginx:v1.22.1
- nodejs:v14.0.0
- npm:v6.14.4
一、MongoDB 安装
1、下载MongoDB压缩包
1 2 3 4 5 6 7 8 9
| # cd /usr/local
# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-6.0.9.tgz
# tar -zxvf mongodb-linux-x86_64-rhel70-6.0.9.tgz
# mv mongodb-linux-x86_64-rhel70-6.0.9 mongodb
# cd mongodb
|
2、创建MongoDB数据存储文件和日志文件
1 2 3 4 5 6 7
| # mkdir data
# mkdir logs
# cd logs
# touch mongodb.log
|
3、增加MongoDB配置文件
内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
port=27017
fork=true
bind_ip=0.0.0.0
|
4、将MongoDB服务加入环境变量
在最后一行添加如下
1 2 3
| export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin
|
使配置文件生效
二、启动MongoDB服务
1、使用配置文件启动MongoDB
1
| # mongod -f /etc/mongodb.conf
|
查看MongoDB是否已经启动
1
| # netstat -lanp | grep "27017"
|
三、MongoDB Shell 安装
1、下载 MongoDB Shell
1 2 3 4 5 6 7
| # cd /usr/local
# mkdir mongodbsh
# cd mongodbsh
# wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.10.6_amd64.deb
|
2、安装 MongoDB Shell
1
| # dpkg -i mongodb-mongosh_1.10.6_amd64.deb
|
四、添加用户,安全认证
1、进入MongoDB数据库
显示如下,已经成功进入MongoDB数据库
1 2 3 4 5 6 7 8
| [root@Jeffrey local] Current Mongosh Log ID: 65bce213151ac76e0e981ac3 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.10.6 Using MongoDB: 6.0.9 Using Mongosh: 1.10.6 mongosh 2.1.3 is available for download: https://www.mongodb.com/try/download/shell
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
|
默认进入的是 test 数据库,使用 show dbs 查看所有数据库
2、添加用户
首先必须使用 admin 数据库,进行新用户授权
1 2 3
| # use admin
# db.createUser({user:'test',pwd:'123456',roles:[{role:'readWrite',db:'cccccl'}]})
|
执行后在终端可以看到如下信息,表示创建成功
创建用户成功后,关闭MongoDB服务
然后需要到配置文件中修改配置,启用安全认证
将 auth 设置为 true
再次启动MongoDB服务,重新进入
1 2 3 4 5
| # mongod -f /etc/mongodb.conf
# mongosh
# show dbs
|
此时会出现一下错误,说明我们的安全认证用户配置生效了
1
| MongoServerError: Command listDatabases requires authentication
|
这时我们需要进入 admin 数据库,进行认证
1 2 3
| # use admin
# db.auth('test','123456')
|
执行后在终端可以看到如下信息,表示认证成功了
四、问答
1、代码程序中可否用如上创建的超级用户连接
不可以!MongoDB中每个数据库之间是相互独立的,都有独立的权限,正确的做法是使用root账号在【将要操作的数据库】中创建一个【子账号】,在用这个子账号连接mongo
2、新创建的数据库为何通过 show dbs
查看不到
不影响使用!如果需要为空数据的场景下也要显示它,可以向该数据库中插入任意一条数据
五、常见问题
1、dpkg: command not found
CentOS系统 的软件安装器是yum,而Debian的是dpkg,正常使用并不需要dpkg。这里为了在CentOS搭建Cydia源,如果能直接执行dpkg那么将会更方便。执行以下命令
六、shell常用命令
1、删除用户
1 2 3
| # use admin
# db.system.users.remove({user: 用户名})
|
2、删除数据库
1 2 3
| # use 数据库名
# db.dropDatabase()
|
3、删除集合
1 2 3
| # use 数据库名
# db.集合名.drop()
|