【玩转云耀云服务器HECS】使用HECS基于Docker搭建MongoDB数据库

举报
福州司马懿 发表于 2023/04/04 00:50:32 2023/04/04
【摘要】 云耀云服务器简介 购买 HECS 连接HECS MongoDB 介绍 MySQL 对比 MongoDB 的体系结构 mongoDB的特点(或使用场景) 安装docker 安装 mongo mongo 创建用户 连接mongo数据库进行测试 命令行连接 DBMS工具连接 总结 云耀云服务器简介首先访问产品页面:https://www.huaweicloud.cn/product/hecs....

云耀云服务器简介

首先访问产品页面:https://www.huaweicloud.cn/product/hecs.html

图片.png

云耀云服务器(Hyper Elastic Cloud Server)是一种可以快速搭建且易于管理的新一代云服务器,支持全方位性能监测,快速锁定中高风险信息并及时提出建议,确保业务平稳运行;同时提供开箱即用的镜像,实现一键应用部署,助力中小企业便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等,简单上云快一步!

购买 HECS

接下来点击“立即购买”,可以看到购买 HECS 总共需要配置以下6项

  1. 选择区域
  2. 镜像(EulerOS、CentOS、Ubuntu、Windows)
  3. 配置(入门型、基本型、进阶型、随心购)
  4. 设置密码(可创建后设置)
  5. 增值服务(性能助手免费诊断、主机安全基础版、开启详细云监控,3者均免费)
  6. 购买时长

图片.png

图片.png

一个月是¥55.36元,一年是¥558.75元

图片.png

点击购买,直接就到了实际付款的界面了

图片.png

连接HECS

成功入手HECS后,在HECS服务器列表中,会出现该HECS (如果没有,请确认当前区域是否与购买的区域相同)。右下角是它的公网IP(到时候使用SSH工具,就是连接该IP地址)

图片.png

SSH连接工具推荐使用Putty

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。

它有如下优点
◆ 完全免费
◆ 在 Windows 9x/NT/2000 下运行的都非常好
◆ 全面支持 SSH1 和 SSH2
◆ 体积很小
◆ 操作简单

尤其是软件体积才 765 字节,远小于其它同类软件,如下图

图片.png

双击Putty图标,会弹出一个配置对话框,在 Host Name 处,你可以输入刚刚的“公网IP”或者“你的域名”,然后点击Open按钮,开始连接服务器

图片.png

连接成功后,你就可以输入任意命令与centos系统进行交互了,例如

echo "hello world" & date

图片.png

安装docker

安装命令如下

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令

curl -sSL https://get.daocloud.io/docker | sh

MongoDB 介绍

MongoDB是一个NoSQL的非关系型数据库,支持海量数据存储,高性能的读写

MySQL 对比 MongoDB 的体系结构

MySQL MongoDB
(结构)表 集合
文档
列/字段
索引 索引
主键 主键
多表操作 不支持多表

差异点

  1. mongo中的集合相当于mysql中表的概念
  2. mongo中的文档相当于mysql中行的概念
  3. mongo中的域相当于mysql中字段/列的概念

mongoDB的特点(或使用场景)

  1. 支持存储海量数据;(例如:直播中的打赏数据)
  2. 支持频繁的数据读写;(例如:游戏道具)
  3. 数据安全性不高,存在数据误差(丢失数据)
  4. mongoDB不支持多表操作,不支持事务
  5. mongoDB使用Bson存储格式,支持动态字段管理

安装 mongo

使用 docker search mongo 查看有哪些mongo包

图片.png

启动mongo(默认会自动下载最新版)

docker run -itd --name mymongo -v /root/data/mongo:/data/db -p 27017:27017 mongo --auth

各参数具体含义如下

  • d:表示在后台启动
  • --name:用来给容器起名
  • -v:将宿主机的/docker_volume/mongodb/data映射到容器的/data/db目录,将数据持久化到宿主机,以防止删除容器后,容器内的数据丢失
  • -p:表示端口映射
  • -auth:需要密码才能访问容器服务

图片.png

mongo 创建用户

网上很多教程都是说使用docker exec -it <容器名> mongo admin,这样登录mongo命令行,这种方法其实已经过时了,会报如下错误

OCI runtime exec failed: exec failed: unable to start container process: exec: "mongo": executable file not found in $PATH: unknown

图片.png

mongodb6.0以后做出了重大改变,mongodb已经不再默认为你安装shell工具,因此需要安装一个额外的shell工具 —— MongoDB Shell,这个工具被称为mongosh。但docker容器中的mongo已经为你预装好了该工具,可以使用如下命令进行查看

docker exec -it <容器名> ls /bin | grep mongo*

正确的做法是,将mongo命令改为mongosh命令。下面使用 mongosh 命令登录 admin 数据库

docker exec -it mymongo mongosh admin

图片.png

接着创建一个用户(mongo默认没有用户)

db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});
  • user:'root':设置用户名为root
  • pwd:'123456':设置密码为123456
  • role:'userAdminAnyDatabase’:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限(允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile)
  • db:'admin':可操作的数据库
  • readWriteAnyDatabase:赋予用户读写权限

图片.png

连接mongo数据库进行测试

命令行连接

连接mongo数据库

db.auth('root', '123456')

图片.png

测试数据库,插入和查询数据

db.user.find()
db.user.insert({"name": "福州司马懿", "age":35})
db.user.insert({"name": "诸葛亮", "age":18})
db.user.find()

图片.png

有个Warning提示:

Collection.insert() is deprecated. Use insertOne, insertMany, or bulkWrite

意思是原本的insert函数已经被废弃了,现改为insertOneinsertManybulkWrite

DBMS工具连接

DBMS工具,我推荐IntelliJ IDEA 自带的Database功能,在这里选择MongoDB

图片.png

首先,要下载对应的驱动,然后填入上面创建过的user,password,database

图片.png

成功连接后,你就可以查看到上面在admin数据库下创建的user数据了

图片.png

总结

本文带领大家体验了下,使用云耀云服务器HECS搭建MongoDB数据库。可以很明显的看出,购买云耀云服务器比传统的弹性云服务器要快捷很多。然后购买之后的剩下的配置就跟弹性云服务器是一模一样的了(因为都是基于centos上做部署)

因此,云耀云服务器可以让程序员更好的将精力集中于业务,而非配置上,大大的提高了部署效率

【玩转“云耀云服务器(HECS)”有奖征文来袭!惊喜大礼包激励等你来拿!】有奖征文第20期正在火热进行中:
https://bbs.huaweicloud.cn/blogs/391930

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。