CentOS7下安装MongoDB数据库
- 2019 年 11 月 12 日
- 筆記
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

下面介绍在CentOS7下安装MongoDB
1、官方网站上下载RHEL7版本的MongoDB Server的rpm安装包以及MongoDB shell的rpm安装包

https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-server-4.2.1-1.el7.x86_64.rpm
https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/RPMS/mongodb-org-shell-4.2.1-1.el7.x86_64.rpm
2、rpm -ivh 进行安装
rpm -ivh mongodb-org-server-4.2.1-1.el7.x86_64.rpm
rpm -ivh mongodb-org-shell-4.2.1-1.el7.x86_64.rpm

3、启动MongoDB服务
systemctl start mongod.service
并设置为开机自启动systemctl enable mongod.service
MongoDB数据库默认的监听端口27017
输入mongo登录数据库进入shell命令行

4、mongoDB常用命令
show dbs :查看数据库列表;
db :查看当前数据库;
db.createCollection('要新建的表名') :新建一个表;
show collections :查看当前数据库下的表;
db.表名.drop() :删除当前数据库指定表
db.dropDatabase() :删除当前数据库
show users :查看当前库的所有用户
db.cloneDatabase(“127.0.0.1”) :将指定机器上的数据库的数据克隆到当前数据库
db.copyDatabase("mydb", "temp", "127.0.0.1"):将本机的mydb的数据复制到temp数据库中
db.repairDatabase() :修复当前数据库
db.getName() :查看当前使用的数据库
db.stats() :显示当前db状态
db.version() :当前db版本
db.getMongo() :查看当前db的链接机器地址
db.serverStatus().connections.current :查看当前的连接数

5、创建管理员和数据库账号
use admin db.createUser( { user: "admin", pwd: "P@ssw0rd", roles: [ { role: "root", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

创建测试数据库Lab以及该数据库账号
use Lab db.createUser( { user: "yuanfan", pwd: "lab@2019", roles: [ { role: "dbOwner", db: "Lab" } ] } )

并插入测试数据db.Lab.insert({"name":"yuanfan"})

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
注意: 在 MongoDB 中,集合只有在内容插入后才会创建,就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建
6、开启账户认证和远程访问
[root@VM_Server ~]# cp /etc/mongod.conf /etc/mongod.conf_bak [root@VM_Server ~]# vi /etc/mongod.conf
修改如下两处即可
bindIp: 0.0.0.0 security: authorization: enabled
千万记得,配置文件所有的冒号后面要跟一个空格! 第二行千万不要顶格写,加两个空格

然后重启mongod服务systemctl restart mongod.service
7、shell登录时使用账户跟密码登录
mongo -u "yuanfan" -p "Lab@2019" --authenticationDatabase "Lab"

8、使用数据库管理可视化工具
1)例如Navicat

2)免费版的Robo 3T

Robo3T集成了mongoDB shell,可以右键数据库打开Shell
