【建站】linux下安装mongodb

相关文章

安装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
# vim /etc/mongodb.conf

内容如下

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
#端口号 默认为27017
port=27017
#开启子进程
fork=true
#开启认证,必须添加用户,先不开启
#auth=true
#允许远程访问
bind_ip=0.0.0.0

4、将MongoDB服务加入环境变量

1
# vim /etc/profile

在最后一行添加如下

1
2
3
#mongodb
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

使配置文件生效

1
# source /etc/profile

二、启动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数据库

1
# mongosh

显示如下,已经成功进入MongoDB数据库

1
2
3
4
5
6
7
8
[root@Jeffrey local]# mongosh
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'}]})

执行后在终端可以看到如下信息,表示创建成功

1
{ ok: 1 }

创建用户成功后,关闭MongoDB服务

1
# db.shutdownServer()

然后需要到配置文件中修改配置,启用安全认证

1
# vim /etc/mongodb.conf

将 auth 设置为 true

1
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
{ ok: 1 }

四、问答

1、代码程序中可否用如上创建的超级用户连接

不可以!MongoDB中每个数据库之间是相互独立的,都有独立的权限,正确的做法是使用root账号在【将要操作的数据库】中创建一个【子账号】,在用这个子账号连接mongo

2、新创建的数据库为何通过 show dbs 查看不到

不影响使用!如果需要为空数据的场景下也要显示它,可以向该数据库中插入任意一条数据

五、常见问题

1、dpkg: command not found

CentOS系统 的软件安装器是yum,而Debian的是dpkg,正常使用并不需要dpkg。这里为了在CentOS搭建Cydia源,如果能直接执行dpkg那么将会更方便。执行以下命令

1
# yum -y install epel-release && yum repolist && yum install dpkg-devel dpkg-dev

六、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()

喜欢这篇文章?打赏一下支持一下作者吧!
【建站】linux下安装mongodb
https://www.cccccl.com/20220610/建站/安装mongodb/
作者
Jeffrey
发布于
2022年6月10日
许可协议