docker-compose 简单部署MySQL Database

news2025/2/25 11:59:29

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: true

services:
    varsql:
        image: mysql
        container_name: mysql
        ports:
            - "3306:3306"
        volumes:
            - mysql/mydir:/mydir
            - mysql/datadir:/var/lib/mysql
            - mysql/conf/my.cnf:/etc/my.cnf
            # 数据库还原目录 可将需要还原的sql文件放在这里
            - mysql/source:/docker-entrypoint-initdb.d
        restart: always

        logging:
            driver: json-file
            options:
                max-size: "20m" # 单个文件大小为20m
                max-file: "2" # 最多2个文件
        environment:
            MYSQL_DATABASE: YourDatabaseName
            MYSQL_ROOT_PASSWORD: YourPassword
            TZ: Asia/Shanghai
        networks:
            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.coloradmin.cn/o/1158859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“零基础”PHP代码审计入门

目录 一、代码审计目的 二、代码审计基础 三、 代码审计思路 四、PHP核心配置 五、 代码审计环境 六、手动调试代码 七、PHP的弱类型 八、学习漏洞函数 九、审计入门总结 推荐一些demo: 一、代码审计目的 代码审计指的是对源代码进行检查,寻找…

智慧校园地下管线三维可视化管控平台减少人力和物力资源的浪费

随着科技的不断发展,三维可视化管理平台在各个领域得到了广泛的应用。三维可视化管理平台通过将数据以三维形式呈现,使得用户能够更直观地理解和分析数据,从而提高工作效率和决策质量。 VR数字孪生园区系统是通过将实际园区的各种数据和信息进…

开关电源老化试验和性能检测系统软件

开关电源自动测试系统由PC(工控机)、测试工装、可编程直流电源、数字示波器、可编程直流电子负载、继电器模块等部分组成,并通过RS232/LAN通讯总线、测试夹具以及其它线缆等进行连接,为系统组成结构。PC与可编程直流电源、数字示波器、可编程直流电子负载…

c++装饰器模式

前言 装饰器模式,就是可以对一个对象无限装饰一些东西,而且可以没有顺序。比如一个人可能只会说出他的名字,但是可以让他再说哈哈,可以说完哈哈之后再说哇哇。如何后面又不想装饰了,不需要改类原来的代码,…

什么是数字展览馆,数字展览馆有什么应用前景

引言: 数字展览馆作为一种新兴的文化艺术展示形式,以数字化技术和虚拟现实为基础,正在逐渐改变传统展览的方式。 一、什么是数字展览馆? 1.定义 数字展览馆是利用数字技术和虚拟现实技术打造的一种线上文化艺术展示平台。通过虚…

基于springboot实现疫情防控期间外出务工人员信息管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot疫情防控期间外出务工人员信息管理系统 摘要 网络的广泛应用给生活带来了十分的便利。所以把疫情防控期间某村外出务工人员信息管理与现在网络相结合,利用java技术建设疫情防控期间某村外出务工人员信息管理系统,实现疫情防控期间某村外出…

《完蛋!我被美女包围了》突然火了!世界首个开源贡献榜出炉丨 RTE 开发者日报 Vol.75

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

我的天!阿里云服务器居然比腾讯云优惠1元!

2023阿里云服务器优惠活动来了,以前一直是腾讯云比阿里云优惠,阿里云绝地反击,放开老用户购买资格,99元服务器老用户可以买,并且享受99元续费,阿腾云亲测可行,大家抓紧吧,数量不多&a…

Mac上的iTerm2和Oh My Zsh 的安装(安装过程和失败详解)

前言(无重点,安装往后看) 由于在很多人的安利下,说很好用,作者今天花费了4个小时用血的教训总结出来的安装教程,我在安装过程中遇到的最大的问题就是 1. curl: (7) Failed to connect to raw.githubusercon…

电影《河边的错误》观后感

上周看了电影《河边的错误》,整部电影看介绍,是改编余华的小说,并且获得多种奖项,一般来说,差不了,看完之后,只能说,看得有些云里雾里的,看似最后主角抓到了罪犯&#xf…

STM32循迹小车原理介绍和代码示例

目录 1. 循迹模块介绍 2. 循迹小车原理 3. 循迹小车核心代码 4. 循迹小车解决转弯平滑问题 1. 循迹模块介绍 TCRT5000传感器的红外发射二极管不断发射红外线当发射出的红外线没有被反射回来或被反射回来但强度不够大时红外接收管一直处于关断状态,此时模块的输出…

被这7款在线涂鸦画板惊艳到,手残也能画出涂鸦大片!

作为一名涂鸦爱好者或者手帐达人,你是否在寻找好用的在线涂鸦画板软件呢?涂鸦画板软件释放了创造性的无限可能,让你能够将想法转化为令人惊叹的视觉效果,并轻松地与客户、同行和全球观众分享你的作品。 在这篇文章中,…

Redis之 redis.config配置文件

文章目录 前言一、基本配置1.单位2.包含3.网络配置4.通用5.快照6.安全7.限制8.仅追加模式 二、总体主要介绍总结 前言 行家一出手,就知有没有,让一起学习redis.config配置文件。 一、基本配置 Redis 的配置文件位于 Redis 安装目录下,文件名…

android 13 write javaBean error at *** 错误

报错代码:红框处。 注意:android10 不会报错,运行正常。android13就报错 错误原因:对象中VerifyDownloadEntity,有个Bitmap成员变量 public class VerifyDownloadEntity {private Bitmap bitmap;private String cooki…

SpringBoot 及 配置文件

一、什么是 SpringBoot? Spring 是包含了众多工具的IoC容器,Spring Boot 是 Spring 的脚手架,是为了快速开发 Spring 而创建的一个框架。 二、Spring Boot 优点 快速集成框架,Spring Boot 提供了启动添加依赖的功能&#xff0c…

centos7安装oxidized备份软件

首先需要提前下载ruby,因为默认yum安装的版本太低 https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz 1、yum remove ruby ruby-devel(有就卸载,没有则忽略) 2、将下载好的ruby包解压到/opt下 [rootoxidized ruby-…

Cesium:CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再转换到笛卡尔坐标系的xyz坐标

作者:CSDN @ _乐多_ 本文将介绍使用 Vue 、cesium、proj4 框架,实现将CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再将WGS84坐标系的经纬高度转换到笛卡尔坐标系的xyz坐标的代码。并将输入和输出使用 Vue 前端框架展示了出来。代码即插即用。 网页效果如下图所示…

Boris FX Silhouette 2023.0.3(影视后期)

Silhouette mac是一种视觉表现形式,通常用于描绘物体或人物的轮廓。它可以通过填充与背景形成鲜明的对比,从而使轮廓更加清晰明了。Silhouette 是一种简约而又具有艺术感的表现方式,常用于绘画、摄影和设计领域。 在绘画中,Silho…

springboot之拦截器、servlet过滤器

一 使用maven新建Spring Boot项目 1. File --> New --> Project... --> Maven ,如下图所示 Project SDK下拉列表框中选择前面安装的 Java1.8,如果下拉列表框中不存在Java 1.8,可以单击New按钮,找到安装Java的位置&…

第22期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…