暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

推荐|如何在半小时内部署五种主流数据库

783

今天在一台云服务器上使用 Docker 部署了 Oracle、MySQL、PostgreSQL、MongoDB、Redis 五种常用的的数据库。覆盖了这些数据库的各种主流的版本,共 19 个实例。

常规情况下,如果要部署这么多数据库,可能至少需要 1 到 2 天时间,使用容器部署压缩到了半个小时之内完成。现在把容器化部署这些数据库的步骤和命令分享出来,参考命令 30 分钟内即可部署完这些数据库。


Docker 环境准备

yum -y install docker
systemctl start docker

部署 Oracle

#创建 Oracle11g 容器
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker run --name docker-oracle11g -p 1621:1521 -d  --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

#创建后 Oracle 容器里的 root 默认密码:helowin,容器 Oracle 用户密码:oracle,oracle sid: helowin

#进入 Oracle 容器
docker exec -it  docker-oracle11g bash

#使用 sqlplus 登录 Oracle 数据库
sqlplus / as sysdba

部署 MySQL

创建容器,以下命令分别创建 MySQL5.5、MySQL5.6、MySQL5.7、MySQL8.0 四个版本的 MySQL 数据库实例。

docker run --name docker-mysql5.5 --publish 3506:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:5.5
docker run --name docker-mysql5.6 --publish 3607:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:5.6
docker run --name docker-mysql5.7 --publish 3708:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:5.7
docker run --name docker-mysql8.0 --publish 3809:3306 -e MYSQL_ROOT_PASSWORD=root -d --restart=always mysql:8.0

进入 MySQL 容器,以 docker-mysql5.5 容器为例

docker exec -it docker-mysql5.5 bash

登录 MySQL 添加用户密码

mysql -uroot -proot
mysql> grant select,super,process on *.* to 'monitor'@'%' identified by '123456';
mysql> flush privileges;

部署 PostgreSQL

创建容器,以下命令分别创建 PG10.1、PG11.2、PG12.2 三个版本的数据库实例。

docker run --name docker-postgres10.1  -p 5436:5432 -e POSTGRES_PASSWORD=postgres -d --restart=always postgres:10.1
docker run --name docker-postgres11.2  -p 5437:5432 -e POSTGRES_PASSWORD=postgres -d --restart=always postgres:11.2
docker run --name docker-postgres12.2  -p 5438:5432 -e POSTGRES_PASSWORD=postgres -d --restart=always postgres:12.2

进入 postgres 容器

docker exec -it docker-postgres10.1 bash

登录 postgres 数据库,创建账号和授权

su - postgres
psql
postgres=# create user monitor with password '123456';
postgres=# grant all privileges on database  postgres to monitor;

部署 Redis

创建容器,以下命令分别创建 Redis3.0、Redis4.0、Redis5.0、Redis6.0 四个版本的 Redis 实例,不开启认证。

docker run --name docker-redis3.0-no -p 6369:6379 -d --restart=always redis:3.0 redis-server --appendonly yes 
docker run --name docker-redis4.0-no -p 6469:6379 -d --restart=always redis:4.0 redis-server --appendonly yes 
docker run --name docker-redis5.0-no -p 6569:6379 -d --restart=always redis:5.0 redis-server --appendonly yes 
docker run --name docker-redis6.0-no -p 6669:6379 -d --restart=always redis:6.0 redis-server --appendonly yes 

如果 Redis 需要开启密码认证,可用通过--requirepass 参数配置

docker run --name docker-redis3.0 -p 6389:6379 -d --restart=always redis:3.0 redis-server --appendonly yes --requirepass "123456"
docker run --name docker-redis4.0 -p 6489:6379 -d --restart=always redis:4.0 redis-server --appendonly yes --requirepass "123456"
docker run --name docker-redis5.0 -p 6589:6379 -d --restart=always redis:5.0 redis-server --appendonly yes --requirepass "123456"
docker run --name docker-redis6.0 -p 6689:6379 -d --restart=always redis:6.0 redis-server --appendonly yes --requirepass "123456"

进入 Redis 容器

docker exec -it docker-redis3.0 bash

进入容器后就可用登录 Redis

redis-cli -a 123456

部署 MongoDB

创建容器,以下命令分别创建 Mongo3.6、Mongo4.4、Mongo5.0 三个版本的 Mongo 实例。

docker run --name docker-monogb3.6  -p 28017:27017 -d  --restart=always mongo:3.6
docker run --name docker-monogb4.4  -p 28018:27017 -d  --restart=always mongo:4.4
docker run --name docker-monogb5.0  -p 28019:27017 -d  --restart=always mongo:5.0

创建后之后进入 MongoDB 容器

docker exec -it docker-monogb3.6 bash

登录 Mongo 数据库,创建账号

mongo --host=127.0.0.1 --port=27017
> use admin
switched to db admin
>
> db.createUser({user:'monitor',pwd:'123456',roles:['root']})
Successfully added user: { "user" : "monitor""roles" : [ "root" ] }

部署完成,使用 docker ps 看看效果吧。

器化部署特别合适想快速熟悉各个数据库环境的同学,或者 DBA 想测试验证某个数据库功能的时候,不用大费周折,快速部署验证测试,用完快速销毁。和测试验证没问题生产环境需要进一步验证


更多精彩内容欢迎大家关注数元技术公众号~


关于 RadonDB

RadonDB开源社区 是一个面向云原生、容器化的数据库开源社区。为数据库技术爱好者提供围绕主流开源数据库(MySQL、PostgreSQL、Redis、MongoDB、ClickHouse 等)的技术分享平台,并提供企业级 RadonDB 开源产品及服务。

GitHub: 

https://github.com/radondb

网站:

https://radondb.com

论坛:

https://kubesphere.com.cn/forum/t/RadonDB 

微信群: 

请搜索添加群助手微信号 radondb

文章转载自RadonDB 开源社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论