Skip to content

MongoDB的安装与配置

1、配置yum源

  • vim /etc/yum.repos.d/mongodb-org-4.0.repo

填入源信息(最新源信息参考官方文档)

js
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

ps:源信息来源:官方文档:Linux安装MongoDB

2、安装MongoDB

  • yum install -y mongodb-org

3、MongoDB服务操作

启动:

  • systemctl start mongod

开机自启

  • systemctl enable mongod

停止:

  • systemctl stop mongod

查看状态:

  • systemctl status mongod

重启:

  • systemctl restart mongod

查看端口是否开启(如果未开启,则尝试关闭防火墙)

  • netstat -natp | grep 27017 // 查看端口占用
  • systemctl stop firewalld // 关闭防火墙
  • systemctl disable firewalld // 开机禁用

4、开启公网访问

  • vim /etc/mongod.conf
js
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # 0.0.0.0:开启公网访问 | 127.0.0.1:只能本地访问

尝试使用Navicat连接

连接

5、配置访问权限

  • 经上面步骤已可以正常连接与操作数据库,但是未设置任何权限。

巨坑

先设置数据库用户&密码,再配置权限访问。(mongo无缘无故炸了)

设置数据库用户&密码与权限

  • mongo // 进入mongo命令终端
  • show dbs // 会有三个默认数据库
  • use admin // 操作admin数据库
  • db.createUser({ user:"root", pwd:"123456", roles:["root"] }) // root别动,改密码就好。而且其他库都不能用root,创建root用户会抛错。

ps:root拥有最高权限,可以读写所有数据库。

连接成功

权限

创建用户成功后,配置权限访问

  • vim /etc/mongod.conf
js
security:
  authorization: "enabled"   # disable or enabled

ps: authorization 这个字段没有, 需要自己加上。

重启Mongo: systemctl restart mongod

6.其他问题

删除用户

连接Mongo: mongo 127.0.0.1:27017/admin -u root -p 123456

ps: 如果密码带有!,可以使用引号引起来

删除用户: db.dropUser('usertest')

小坑

  • 删除root用户后无法创建新的用户,可以先关闭权限认证,再按上面步骤创建用户
  • 创建数据库不会立刻展示,需要往里面插入数据:db.xxxdb.insert({"name":"菜鸟教程"})

用户权限参考

7.连接MongoDB

终端连接

js
mongo yourIp:27017/database -u username -p password

mongoose方式连接

js
mongoose.connect('mongodb://username:password@host:port/database', {useNewUrlParser: true})

通过客户端连接: Navicat

卸载MongoDB

  • yum erase $(rpm -qa | grep mongodb-org) // 卸载MongoDB
  • rm -r /var/log/mongodb // 删除日志文件
  • rm -r /var/lib/mongo // 删除数据文件