在CentOS7上安装MongoDB4.2

参考资料

官方网站 产品手册 NoSQL

添加REPO文件

使用vi或者vim编辑/etc/yum.repos.d/mongodb-enterprise.repo文件,把下面的内容复制到文件中然后保存退出。示例中是安装4.2版本,目前最新的版本是4.4,如需安装最新版本,请修改示例中4.2为4.4。

            [mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/4.2/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
        

执行安装操作,并启动服务

            yum install -y mongodb-enterprise
systemctl enable mongod
systemctl start mongod
        

创建管理员帐号

mongodb默认是匿名连接的,我们需要开启登录验证就必须先在匿名连接的状态下创建好登录帐号并进行授权。如果不先建立帐号就直接开启登录验证,那么我们将无法连接到mongodb服务了。下面的示例中我们创建一个帐号为my_account,密码为my_password的帐号,并给它授权为数据库的管理员。

            use admin;
db.createUser({user:"my_account",pwd:"my_password",roles:[{role:"userAdminAnyDatabase",db:"admin"},"readWriteAnyDatabase"]});
exit
        

修改配置文件,开启登录验证

使用vi或者vim编辑/etc/mongod.conf,修改绑定的IP和端口,然后开启登录验证。详细内容可以参考下面的示例。

            net:
  port: 27017
  bindIp: 0.0.0.0  
security:
  authorization: enabled
        

重启服务,验证修改是否生效

将服务重启后,我们连接上mongodb,注意此时是可以成功建立连接的,当我们去执行命令的时候才会提示需要授权。那么表示我们开启登录授权是成功了,接下来我们用刚刚建立的帐号进行授权操作,授权成功后我们就可以进行数据库的任何操作了。使用的命令参考下方示例。

            systemctl restart mongod
mongo
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
use admin;
db.auth('my_account','my_password');
        

创建自己的数据

mongodb是无需执行创建数据库的命令,直接使用不存在的数据库名就可以自动创建它。我们通常不建议使用管理员账户来连接数据库,所以我们还需要为新的数据库重新创建一个属于它的账户。下面的示例中,我们创建一个名为my_db的数据库,同时为它建立一个账户。

            use my_db;
db.createUser({user:"my_db_admin",pwd:"my_db_password",roles:[{role:"dbAdmin",db:"my_db"},"readWrite"]});
        

数据库的备份与还原

mongodb的数据库备份文件是存放在一个目录中的多个文件,而我们平时常用的关系型数据库的备份结果是一个独立文件。所以我们备份完成以后通常还需要用压缩工具压缩成一个独立文件再拷贝转移。下面是备份及还原数据库的示例。

            mongodump -u my_db_account -p my_db_password -d my_db -o /home
mongorestore -d my_db -u my_db_account -p my_db_password --drop /home/my_db/