本文记载一次在阿里云服务器装载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用户创建