服务计算 第十七周 在docker上部署MySql实现StarWarsAPI

Docker部署MySQL实践
本文详细介绍了如何在Docker上部署MySQL数据库,包括Docker的安装、MySQL镜像的获取与容器生成,以及数据库、用户的创建和权限设置,为StarWarsAPI项目提供了后端支持。


1 主要内容

本次实验在StarWars原有的基础上进行,我仍然负责同样的部分:后端数据库。
上一次实验链接


2 基本介绍

大致功能与之前一样,但是使用了三个容器来包装前端、后端API、后端数据库。
本博客前半部分介绍了docker的部署以及docker上MySql的部署;后半部分介绍了MySql的实现。


3 部署Docker及MySql

3.1 安装Docker

首先,安装docker

sudo yum install docker-engine

开启docker服务

service docker start

3.2 部署MySql

获取最新的MySql镜像(也可以不获取,这样在部署的时候会自动获取)

sudo docker pull mysql/mysql-server:latest

在这里插入图片描述

生成MySql容器

sudo docker run --name mysql -d --restart always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /docker/mysql_data:/var/lib/mysql mysql/mysql-server

各参数属性的意义:
--name mysql:名称mysql;-d:后台运行容器,并返回容器ID;–restart always:容器退出时重启容器;-p 3306:3306:将宿主机的3306端口映射到容器的3306端口;-e MYSQL_ROOT_PASSWORD=123456:设置mysql的root密码为123456;-v /docker/mysql_data:/var/lib/mysql:将宿主机的目录/docker/mysql_data映射到容器的目录/var/lib/mysql,以存放容器的mysql数据库文件。

在这里插入图片描述

查看已经部署的容器:-s查看已经部署的容器 -a查看已经启动的容器。

sudo docker ps -a
sudo docker ps -s

在这里插入图片描述

连接MySql,输入密码,成功!(此处密码为之前设置的密码)

sudo docker exec -it mysql bash
mysql -u root -p

在这里插入图片描述


3.3 创建数据库、用户及授权

打开数据库后,外面是不能够连接的,因为外界对于docker内的数据库并没有权限,因此我们需要创建新的用户并对他赋予权限。

创建数据库与本地用户:

CREATE DATABASE SW;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456'

在这里插入图片描述

  • 此处,创建名为testuser,密码为123456的用户,允许本机地址访问。(如果全网段可以访问,则使用%通配符)。

赋予权限:

GRANT privileges ON SW.* TO 'testuser'@'localhost';

在这里插入图片描述

  • 允许访问SW的所有表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值