【玩转云耀云服务器HECS】使用HECS基于Docker搭建MongoDB数据库
云耀云服务器简介
首先访问产品页面:https://www.huaweicloud.com/product/hecs.html
云耀云服务器(Hyper Elastic Cloud Server)是一种可以快速搭建且易于管理的新一代云服务器,支持全方位性能监测,快速锁定中高风险信息并及时提出建议,确保业务平稳运行;同时提供开箱即用的镜像,实现一键应用部署,助力中小企业便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等,简单上云快一步!
购买 HECS
接下来点击“立即购买”,可以看到购买 HECS 总共需要配置以下6项
- 选择区域
- 镜像(EulerOS、CentOS、Ubuntu、Windows)
- 配置(入门型、基本型、进阶型、随心购)
- 设置密码(可创建后设置)
- 增值服务(性能助手免费诊断、主机安全基础版、开启详细云监控,3者均免费)
- 购买时长
一个月是¥55.36元,一年是¥558.75元
点击购买,直接就到了实际付款的界面了
连接HECS
成功入手HECS后,在HECS服务器列表中,会出现该HECS (如果没有,请确认当前区域是否与购买的区域相同)。右下角是它的公网IP(到时候使用SSH工具,就是连接该IP地址)
SSH连接工具推荐使用Putty
PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。
它有如下优点
◆ 完全免费
◆ 在 Windows 9x/NT/2000 下运行的都非常好
◆ 全面支持 SSH1 和 SSH2
◆ 体积很小
◆ 操作简单
尤其是软件体积才 765 字节,远小于其它同类软件,如下图
双击Putty图标,会弹出一个配置对话框,在 Host Name 处,你可以输入刚刚的“公网IP”或者“你的域名”,然后点击Open按钮,开始连接服务器
连接成功后,你就可以输入任意命令与centos系统进行交互了,例如
echo "hello world" & date
安装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 |
---|---|
(结构)表 | 集合 |
行 | 文档 |
列/字段 | 域 |
索引 | 索引 |
主键 | 主键 |
多表操作 | 不支持多表 |
差异点
- mongo中的集合相当于mysql中表的概念
- mongo中的文档相当于mysql中行的概念
- mongo中的域相当于mysql中字段/列的概念
mongoDB的特点(或使用场景)
- 支持存储海量数据;(例如:直播中的打赏数据)
- 支持频繁的数据读写;(例如:游戏道具)
- 数据安全性不高,存在数据误差(丢失数据)
- mongoDB不支持多表操作,不支持事务
- mongoDB使用Bson存储格式,支持动态字段管理
安装 mongo
使用 docker search mongo
查看有哪些mongo包
启动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
:需要密码才能访问容器服务
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
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
接着创建一个用户(mongo默认没有用户)
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});
user:'root'
:设置用户名为rootpwd:'123456'
:设置密码为123456role:'userAdminAnyDatabase’
:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限(允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile)db:'admin'
:可操作的数据库readWriteAnyDatabase
:赋予用户读写权限
连接mongo数据库进行测试
命令行连接
连接mongo数据库
db.auth('root', '123456')
测试数据库,插入和查询数据
db.user.find()
db.user.insert({"name": "福州司马懿", "age":35})
db.user.insert({"name": "诸葛亮", "age":18})
db.user.find()
有个Warning提示:
Collection.insert() is deprecated. Use insertOne, insertMany, or bulkWrite
意思是原本的insert函数已经被废弃了,现改为insertOne
、insertMany
或bulkWrite
DBMS工具连接
DBMS工具,我推荐IntelliJ IDEA 自带的Database
功能,在这里选择MongoDB
首先,要下载对应的驱动,然后填入上面创建过的user
,password
,database
成功连接后,你就可以查看到上面在admin
数据库下创建的user
数据了
总结
本文带领大家体验了下,使用云耀云服务器HECS搭建MongoDB数据库。可以很明显的看出,购买云耀云服务器比传统的弹性云服务器要快捷很多。然后购买之后的剩下的配置就跟弹性云服务器是一模一样的了(因为都是基于centos上做部署)
因此,云耀云服务器可以让程序员更好的将精力集中于业务,而非配置上,大大的提高了部署效率
【玩转“云耀云服务器(HECS)”有奖征文来袭!惊喜大礼包激励等你来拿!】有奖征文第20期正在火热进行中:
https://bbs.huaweicloud.com/blogs/391930
- 点赞
- 收藏
- 关注作者
评论(0)