docker-compose 简单部署MySQL Database

docker-compose 简单部署MySQL Database

本博文部署MySQL 并与上篇部署的 Flask进行关联
主博客目录:《从零开始学习搭建量化平台笔记》


文章目录

  • docker-compose 简单部署MySQL Database
    • 部署 MySQL
    • MySQL 开放端口与权限


mysql_flask

主项目计划需要搭建一个MySQL 数据库为其他部件提供数据,为了避免搭完就忘,因此就有了这个博客。
任务:搭建一个MySQL容器,给Flask部件提供一个只读用户权限,用来读取数据并生成网页。

部署 MySQL

# 创建工作目录
mkdir mysql
cd mysql
# 创建映射目录
mkdir conf datadir mysir source
touch conf/my.cnf

vim conf/my.cnf 编写 mysql配置文件:

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
character-set-client-handshake=FALSE
collation-server=utf8_unicode_ci
init_connect='SET NAMES utf8'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

vim docker-compose.yml 编写 docker-compose.yml, 需注意缩进:

version: '3'networks:n-bridge:external: trueservices:varsql:image: mysqlcontainer_name: mysqlports:- "3306:3306"volumes:- mysql/mydir:/mydir- mysql/datadir:/var/lib/mysql- mysql/conf/my.cnf:/etc/my.cnf# 数据库还原目录 可将需要还原的sql文件放在这里- mysql/source:/docker-entrypoint-initdb.drestart: alwayslogging:driver: json-fileoptions:max-size: "20m" # 单个文件大小为20mmax-file: "2" # 最多2个文件environment:MYSQL_DATABASE: YourDatabaseNameMYSQL_ROOT_PASSWORD: YourPasswordTZ: Asia/Shanghainetworks:n-bridge:ipv4_address: 171.171.0.4

MySQL 开放端口与权限

查看是否创建成功:

sudo docker ps

若 STATUS != Up 可以查看 logs 排查问题:

sudo docker logs mysql --tail=100

进入MySQL Docker容器:

sudo docker exec -it mysql /bin/bash

运行 MySQL:

mysql -uroot -p

再输入docker compose 中填写的密码。

若登录成功,进行SQL命令操作。

查看已有数据库名称:

SHOW DATABASES;

创建新的数据库flask_ex

CREATE DATABASE flask_ex;

删除数据库命令:

DROP DATABASE flask_ex;

显示所有用户与端口,用户与端口绑定为唯一账户

SELECT user,host FROM mysql.user;

创建flask只读用户,只对flask端口开放(网桥端口映射在上篇博文中设置过):

CREATE USER 'flask_web'@'flask.my-bridge' IDENTIFIED BY "password";

显示用户所有权限:

SHOW grants for 'flask_web'@'flask.my-bridge';

清除用户所有权限

REVOKE all on *.* from 'flask_web'@'flask.my-bridge';

更改用户对flask_ex数据库只有只读权限:

GRANT SELECT ON flask_ex.* TO 'flask_web'@'flask.my-bridge' IDENTIFIED BY "password";

显示用户所有权限:

SHOW grants for 'flask_web'@'flask.my-bridge';

若添加成功,这样我们对flask端口的只读用户就创建完毕了。

以下为创建用户并开放权限通用命令:

# 创建只读账户
CREATE user 'username'@'%' IDENTIFIED BY "password";
GRANT SELECT ON dbname.* TO 'username'@'%' IDENTIFIED BY "password";
FLUSH PRIVILEGES;# 赋予部分权限
GRANT select,delete,update,insert ON dbname.* TO 'username'@'%' IDENTIFIED BY "password    ";# 创建完整账户
GRANT all privileges ON dbname.* TO 'username'@'%' IDENTIFIED BY "password";# 修改密码
update user set password = password('password') where user = 'username';# 查看本地root的权限,没有指定后面的localhost则默认为'%'
show grants for root@'localhost';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157871.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[ThinkPHP]源码阅读:Model的获取器

目录 1、ThinkPHP组件版本 2、业务Model代码 3、阅读框架源码 4、跳过获取器获取原始数据写法 1、ThinkPHP组件版本 topthink/think-orm v2.0.58 topthink/think-helper v3.1.6 2、业务Model代码 原理:Model通过调用toArray方法使用自定义的获取器 3、阅读框架…

Java学习笔记(六)——面向对象编程(基础)

一、类与对象 (一)类与对象的概念 (二)对象内存布局 ​编辑 对象分配机制 ​编辑 (三)属性/成员变量 (四)创建对象与访问属性 二、成员方法 (一)方法…

springboot2.x使用@RestControllerAdvice实现通用异常捕获

文章目录 demo地址实现效果引入基础类准备1.通用枚举与错误状态枚举2.定义通用返回结果3.自定义业务异常 统一异常捕获测试 demo地址 demo工程地址 实现效果 当我们输入1时,正常的返回通用的响应结果当我们输入2时,抛出异常,被捕获然后返回…

WoShop跨境电商源码:告别繁琐,一键实现批量发货

随着全球电子商务的飞速发展,越来越多的商家开始进军跨境电商领域。然而,搭建一个成功的跨境电商平台需要考虑众多因素,如订单处理、物流配送、支付结算等。在这个过程中,WoShop跨境电商源码因其强大的功能和简易的操作&#xff0…

深度学习之基于ResNet18的神经网络水果分类系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介二、功能三、神经网络水果分类系统四. 总结 一项目简介 基于ResNet18神经网络的水果分类系统是一个利用深度学习技术进行水果图像分类的系统。下面是该系统…

应急响应—日志分析工具

应急响应—日志分析工具 1. 工具提供2. 日志提取工具2.1. 七牛Logkit2.1.1. 优点2.1.2. 支持类型2.1.3. 下载地址2.1.4. 使用方式2.1.4.1. 修改配置2.1.4.2. 启动工具2.1.4.3. 使用测试 2.2. 观星应急工具 3. 日志分析工具3.1. 360星图3.1.1. 使用方式3.1.1.1. 开始运行3.1.1.2…

hugetlb核心组件

1 概述 hugetlb机制是一种使用大页的方法,与THP(transparent huge page)是两种完全不同的机制,它需要: 管理员通过系统接口reserve一定量的大页,用户通过hugetlbfs申请使用大页, 核心组件如下图: 围绕着…

无需数据搬迁,10倍性能提升!携程的统一分析之旅

作者:携程技术中心大数据总监 许鹏 携程自 2022 年起引入了 StarRocks,目前已经成为了集团内部的主要技术栈,应用到酒店、机票、商旅、度假、市场、火车票等多个关键业务线。目前,携程内部已经拥有超过 10 个 StarRocks 集群&…

Linux下使用vscode编写Python项目

我此处是使用VScode远程连接的服务器,具体方法可看如下: 1、vscode中安装Python插件 按上面步骤安装好Python插件后,重启vscode; 2、选择Python解释器 创建Python项目结构: 按下F1,打开vscode命令栏&am…

ViT Vision Transformer超详细解析,网络构建,可视化,数据预处理,全流程实例教程

关于ViT的分析和教程,网上又虚又空的东西比较多,本文通过一个实例,将ViT全解析。 包括三部分内容,网络构建;orchview.draw_graph 将网络每一层的结构与输入输出可视化;数据预处理。附完整代码 网络构建 …

ElementUI 自定义 Tree 树形控件背景

在 template 中 <div class"container"><el-tree :data"treeList" :props"defaultProps" accordion node-click"handleNodeClick" /> </div> 在 script 中 treeList: [{ id: "-1", label: "区域选…

UE5——网络——属性复制

当属性被注册进行复制后&#xff0c;您将无法再取消注册&#xff08;涉及到生存期这一话题&#xff09;。之所以会这样&#xff0c;是因为我们要预制尽可能多的信息&#xff0c;以便针对同一组属性将某一工作分担给多个连接。这样可以节省大量的计算时间。 virtual void GetLif…