首页 > 数据库 >通过 docker-compose 快速部署 MySQL保姆级教程

通过 docker-compose 快速部署 MySQL保姆级教程

时间:2023-05-29 22:55:33浏览次数:376  
标签:compose name 数据库 MySQL mysql docker

目录

一、概述

MySQL 是一种开源的关系型数据库管理系统(RDBMS),以其快速、可靠和易于使用而受到广泛的欢迎。MySQL 使用 SQL(结构化查询语言)进行查询、管理和操作数据。MySQL 是一种跨平台的数据库,支持在各种操作系统(如 Windows、Linux、MacOS等)上运行。

MySQL 中的重要概念包括:

  • 数据库:指的是一个完整的数据集合,其中包含多个表。

  • :是一个数据实体的二维结构,在表中我们可以以行和列的形式来操作数据。

  • :表中一个字段的名称。

  • :表中的具体数据。

  • 主键:用于唯一标识表中的每一行数据的字段。

  • 外键:用于关联表之间数据的字段。

  • 索引:用于加速数据的查询,可以通过特定的属性来提高查询性能。

  • 视图:是一个虚拟表,它通过查询获取数据。

MySQL 中比较常用的命令包括:

  • CREATE DATABASE: 创建一个新的数据库。

  • CREATE TABLE: 创建一个新的表。

  • INSERT INTO: 向表中插入新的数据。

  • SELECT: 从表中查询数据。

  • UPDATE: 更新表中的数据。

  • DELETE: 删除表中的数据。

  • ALTER TABLE: 修改表的结构。

  • DROP TABLE: 删除一个表。

  • DROP DATABASE: 删除一个数据库。

  • USE: 切换使用的数据库。

  • SHOW DATABASES: 显示所有可用的数据库。

  • SHOW TABLES: 显示数据库中的所有表。

除了上述基本命令之外,MySQL 还支持事务处理、触发器、存储过程等高级特性。掌握 MySQL 的使用,可以帮助我们更好地进行数据存储、管理和处理。想了解更多MYSQL的知识点可参考我以下几篇文章:

在这里插入图片描述

二、前期准备

1)部署 docker

# 安装yum-config-manager配置工具
yum -y install yum-utils

# 建议使用阿里云yum源:(推荐)
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装docker-ce版本
yum install -y docker-ce
# 启动并开机启动
systemctl enable --now docker
docker --version

2)部署 docker-compose

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
docker-compose --version

三、创建网络

# 创建,注意不能使用hadoop_network,要不然启动hs2服务的时候会有问题!!!
docker network create hadoop-network

# 查看
docker network ls

四、MySQL 编排部署

1)构建镜像 Dockerfile

docker pull mysql:5.7

docker tag mysql:5.7 registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/mysql-test:5.7

# 推送镜像
docker push registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/mysql-test:5.7

2)配置文件

mkdir ./conf
cat >./conf/my.cnf<<EOF
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
EOF

2)编排 docker-compose.yaml

version: '3'
services:
  mysql-test:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/mysql-test:5.7
    restart: always
    container_name: mysql-test
    hostname: mysql-test
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      TZ: Asia/Shanghai
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql
      - ./conf/my.cnf:/etc/mysql/my.cnf
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "curl --silent localhost:3306 >/dev/null || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 3

# 连接外部网络
networks:
  hadoop-network:
    external: true

3)开始部署

docker-compose -f docker-compose.yaml up -d

# 查看
docker-compose -f docker-compose.yaml ps

五、简单测试验证

# 登录容器
docker exec -it mysql-test bash

# 登录mysql
mysql -uroot -p
输入密码:123456

show databases;

六、常用的 MySQL 客户端命令

MySQL 是一种常用的关系型数据库,我们可以通过客户端连接MySQL服务器,并执行各种SQL语句来对数据库进行管理。下面列举一些常用的 MySQL 客户端命令:

1)连接到MySQL服务器

mysql -u username -p password -h host -P port

其中,-u 表示用户名,-p 表示密码,-h 表示服务器主机名或IP地址,-P 表示端口号。

2)显示当前数据库列表

show databases;

3)选择数据库

use database_name;

其中,database_name 为要选择的数据库名。

4)显示当前数据库的所有表

show tables;

5)显示表的结构

describe table_name;

其中,table_name 为要查看结构的表名。

6)插入数据

insert into table_name (field1, field2, ...) values (val1, val2, ...);

其中,table_name 为需要插入数据的表名,field1, field2,... 为字段名,val1, val2,... 为要插入的对应值。

7)删除数据

delete from table_name where condition;

其中,table_name 为需要删除数据的表名,condition 为删除数据的条件。

8)修改数据

update table_name set column1 = value1, column2 = value2 where condition;

其中,table_name 为需要修改数据的表名,column1、column2 为需要修改的列名,value1、value2 为要更新的值,condition 为更新条件。

这些是MySQL客户端常用的命令,能够覆盖数据库管理中的大部分操作。需要注意的是,MySQL客户端命令在语法和使用上可能有细微的差别,具体还需根据实际情况具体使用。


以上就是通过 docker-compose 快速部署 MySQL保姆级教程,有任何疑问欢迎留言或关注我公众号【大数据与云原生技术分享】加群交流或私信沟通~

标签:compose,name,数据库,MySQL,mysql,docker
From: https://www.cnblogs.com/liugp/p/17441936.html

相关文章

  • Docker笔记六之使用docker-compose运行系统
    本文首发于公众号:Hunter后端原文链接:Docker笔记六之使用docker-compose运行系统这一篇文章介绍一下docker-compose的用法。前面我们介绍过,一个系统的正常运行除了Django,还需要MySQL、Redis、Nginx等其他系统,那么我们就可以通过docker-compose来部署这些系统的运行。包......
  • 1.docker简介与常用命令
    1.简介1.1.介绍Docker是基于Go语言实现的云开源项目。Docker的主要目标是Build,ShipandRunAnyApp,Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。Docker......
  • docker 安装 Redis环境
    一、Docker搜索redis镜像命令:dockersearch<镜像名称>dockersearchredis二、Docker拉取镜像命令::dockerpull<镜像名称>:<版本号>dockerpullredis三、Docker挂载配置文件接下来就是要将redis的配置文件进行挂载,以配置文件方式启动redis容器。(挂载:即将宿主的文件......
  • docker 实例网络异常占用
    首先删除无效容器或(如果您使用的是docker-composedockercontainerrm<container>docker-composerm<service>docker-compose)确保容器已消失:或者输出中不得有此类容器dockercontainerls|grep<container>docker-composeps|grep<container>现在它可能仍连接到网络,因此......
  • MYSQL复习
    --创建数据库CREATEDATABASEdatabase_nameON[PRIMARY](NAME=file_name,FILENAME='os_file_name',[SIZE=size,][MAXSIZE=max_size|UNLIMTED,][FILEGROWTH=growth_increment])LOGON[PRIMARY](NAME=logical_file_name,FILENAME='os_f......
  • mysql主从切换—一主两从架构
    文档课题:mysql主从切换.数据库:mysql8.0.27系统:rhel7.3安装包:mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz系统架构:一主两从环境介绍:1、应用场景生产环境中,当主库A发生故障时,需要将从库B切换成主库,如下模拟主库Master宕机,slave01升级为Master,slave02保持不变,并实现slave01和......
  • 安装mysql 压缩版数据库
    1、下载压缩版压缩包下载地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads主要步骤1、解压文件,切换到bin目录,复制地址D:\Software\mysql\mysql-8.0.30-winx64\bin2、在系统变量的path中添加地址3、创建添加my.ini文件添加一下内容[mysql]#设置mysq......
  • 11)MySQL编程基础
    1、用户会话变量:会话期间一直有效;但其他的客户机不能访问;一般情况下,用户会话变量的定义与赋值会同时进行; 方法一:使用set命令定义用户会话变量,并为其赋值;set@user_variable1=expre1[,@user_variable2=expre2,...];方法二:使用select语句定义用户会话变量,并为其赋值;sele......
  • MySQL之慢查询sql排查及优化
    前言sql语句优化的方式:1.尽量少join2.尽量少排序3.尽量避免select*4.尽量少or5.尽量用unionall代替union…(优化的方式有很多,这里就不一一举例了)当你避免这些问题的时候,为什么sql查询还是这么慢?排查慢查询sqlps:mysql版本为5.71.连接mysqlmysql-uroot-p2.查......
  • Mysql 字符集问题:utf8与utf8mb4
    UTF-8编码是一种变长的编码机制,可以用1~4个字节存储字符。MySQL中的utf8编码并不是真正的UTF-8,其最长只有3个字节。当遇到占4个字节的UTF-8编码,例如emoji字符或者复杂的汉字,会导致存储异常。从5.5.3开始,MySQL开始用utf8mb4编码来实现完整的UTF-8,其中mb4表示mo......