本文记载一次在阿里云服务器装载Mongodb并远程连接成功使用的过程记录。
基本安装环境:本次安装环境:CentOS7、Mongodb版本为4.2.10
一、安装
通过Mongodb官网,安装Mongodb的社区版本,选择自己需要安装的版本以及依赖的环境。如下图:
- 在服务器打开终端,应用centos中网络下载的方式下载
Mongodb的安装包。
首先,进入服务器端的usr/local,在其路径下创建文件夹:
1 | mkdir mongodb4 |
在此文件夹下远程网络下载Mongodb的安装包:
1 | wegt https://fastdl.mongodb.org/linux/mongodb-shell-linux-x86_64-rhel70-4.4.1.tgz |
解压文件夹:
1 | tar -zxvf mongodb-linux-x86_64-rhel70-4.2.10.tgz |
修改压缩包名称:
1 | mv mongodb-linux-x86_64-rhel70-4.2.10 mongodb4.2 |
二、环境配置
- 全局配置
配置系统环境变量:
1 | vim /etc/profile |
写入配置文件:
1 | Mongodb |
退出保存后,输入以下命令使环境变量生效。
1 | source /etc/profile |
- 创建
Mongodb数据存放文件夹和日志记录文件夹。
在root的根目录下创建以下文件夹:
1 | mkdir -p /data/db |
- 创建
Mongodb运行时使用的配置文件。
进入mongodb4文件夹下的bin目录
1 | cd /usr/local//mongodb4/mongodb4.2/bin/ |
此时所在的路径为:
1 | /usr/local/mongodb4/mongodb4.2/bin |
创建MongoDB.conf配置文件:
1 | vim mongodb.conf |
输入以下内容:
1 | dbpath = /data/db #数据文件存放目录 |
- 加载配置文件,并启动
MongoDB服务。
1 | ./mongod -f mongodb.conf |
通过以下命令查看端口是否映射成功:
1 | netstat -nltp|grep mongod |
以上命令查看MongoDB是否已经启动以及端口是否成功开启。
三、Mongodb启动及账号创建
查看bin目录下的问文件目录,通过ls命令。
目录下存在mongo,启动mongo命令。
1 | mongo |
以上界面是MongoDB启动时,采用的超级权限(即关闭了认证,不需要认证即能登录MongoDB)。
由于第一次使用MongoDB时,MongoDB默认不存在任何用户,所以我们在前面的配置文件中关闭了认证的权限(# auth=true),以方便我们后续自己能够创建一个用户使用。
- 使用
admin数据库(admin数据库用来管理用户权限)
1 | show dbs # 展示目前的所有数据库 |
进入admin数据库:
1 | use admin |
创建管理员用户:
1 | > use admin |
以上字段的含义,创建一个用户,用户名是:root;密码是:123456;赋予的权限是root权限,可以操控的数据库有admin数据库,这种用户的权限较高。
下面创建一个普通用户,供我们后续的实验测试。
1 | use admin |
此次创建的用户名是:user,密码是:123456;用户角色是:dbOwner,是test1和test2数据库的用户管理者。
- 给创建的用户赋予权限
1 | db.auth("用户名","密码") |
即:
1 | db.auth("user","123456") |
出现1表明操作操作成功。
四、远端连接配置
通过以上三步,我们已经安装了Mongodb并配置了Mongodb相关配置文件以及创建了
Mongodb用户。接下来,就需要对Mongodb进行远程连接的配置。
- 首先开启认证,关闭
MongoDB服务端,重新启动,刷新配置文件使其生效。
进入bin目录下,修改mongodb.conf,此时的路径为:/usr/local/mongodb4/mongodb4.2/bin
1 | vim mongodb.conf |
开启用户认证(以下的全部配置):
1 | dbpath = /data/db #数据文件存放目录 |
关闭Mongodb服务端
1 | ./mongod --shutdown |
重新启动服务器端并刷新配置文件
1 | ./mongod -f mongodb.conf |
此时,关于认证的配置已经全部结束,下面我们对Mongodb进行服务器端的使用测试。
登录Mongodb类似于MySQL,采用以下命令。
1 | mongo -uroot -proot |
登录我们之前的创建的user账户:
1 | mongo -uuser -p123456 |
由于之前,我们创建user账户时,给予了它对test1、test2数据库的权限;所以我们此时可以创建test1、test2并使用。
首先明确以下概念:
Mongodb中的collection对应着Mysql中的表;
Mongodb中的document对应着Mysql中的记录。
在Mongodb中创建数据库就直接使用use 数据库名称;例如创建test1数据库,则use test1;
1 | > use test1 |
此时系统创建了test1,但只是预创建。如果,我们没有对其进行任何操作,即数据库中不存在任何信息,那么当我们切出这个数据库时,系统就会释放这个数据库的内存信息,就不再存在这个数据库。
向test1数据库中插入collection,并创建document。
1 | db.firstCollection.save({"name":"Tom","age":"18"}) |
这里创建了一个collection-firstCollection。存入了姓名和年龄信息。
1 | show collections # 展示数据库中的所有collection |
至此,Mongodb本地使用的配置已经全部配置完毕,下面是开启远程连接的操作。
- 登录阿里云,开启服务器端的安全组;因为
Mongodb服务器端监听的端口是27017,故需要配置安全组,端口号为27017。
同时配置内网入方向规则和内网出方向规则。
- 阿里云服务器端开启防火墙,并放行
27017端口。
查看防火墙状态:
1 | systemctl status firewalld |
开启防火墙:
1 | systemctl start firewalld |
关闭防火墙:
1 | systemctl stop firewalld |
确认firewalld状态:
1 | systemctl status firewalld |
开放27017端口:
1 | firewall-cmd --permanent --zone=public --add-port=27017/tcp |
至此,通过以上的步骤,我们配置了阿里云的内网规则;服务器端放行了27017端口,允许远程可以访问。
- 测试连接
打开浏览器,访问自己服务器端的IP地址:端口号。
1 | IP地址:27017 |
例如:
1 | 106.65.34.210:27017 |
若出现以下画面,则说明远程连接访问配置成功。
五、本地通过Pycharm连接Mongodb
我们在远程服务器端的一系列配置,就是为了能够在客户端操作Mongodb数据库。我们采用最简单的方式,那就是利用Pycharm的插件Mongo Explorer来帮助我们进行可视化操作。
在Pycharm中的插件下载等工作就不再赘述。下面即对Mongodb的连接的操作:
进入Mongo Explorer的配置,General项的配置为:
Label:随便填写,用于标识数据库。
Server url(s):IP地址:端口号。
User Database:连接的数据库名称。
接下来进入第二项Authentication,进行配置。
同Mysql一样,填上Username和Password即可,下方的Auth.mechanism选择第一项。
点击Test Connection进行测试。
大功告成!
至此,我们完成了Mongodb的下载安装以及相关配置,最后到客户端对服务器端的远程连接,完成了可视化操作。
参考文献
[2] MongoDB用户创建









