• 【云原生 | 24】Docker运行数据库实战之MySQL


    作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道第一名🏅 阿里云ACE认证高级工程师🏅
    ✒️个人主页:小鹏linux
    💊个人社区:小鹏linux(个人社区)欢迎您的加入!

    为大家推荐一款刷题神奇 点击链接访问牛客网

    各大互联网大厂面试真题。基础题库到进阶题库等各类面试题应有尽有!

    牛客网面经合集,满足大厂面试技术深度,快速构建Java核心知识体系大厂面试官亲授,备战面试与技能提升,主要考点+主流场景+内功提升+真题解析

    1. 数据库概念

     目前,主流数据库包括关系型(SQL)和非关系型(NoSQL)两种。

    关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,支持复杂的事物处理和结构化查询。代表实现有MySQL、Oracle、PostGreSQL、MariaDB、 SQLServer等。
    非关系数据库是新兴的数据库技术,它放弃了传统关系型数据库的部分强一致性限制,带来性能上的提升,使其更适用于需要大规模并行处理的场景。非关系型数据库是关系型数据库的良好补充,代表产品有MongoDB、Redis、CouchDB等。
    本篇文章选取了最具代表性的Mysql来讲解基于Docker创建相关镜像并进行应用的过程。

    2. 认识MySQL 

     MySQL是全球最流行的开源的开源关系数据库软件之一,因为其高性能、成熟可靠和适应性而得到广泛应用。MySQL目前在不少大规模网站和应用中被使用,比如 Facebook、Twitter和Yahoo!等。

    MySQL数据库是一种关系型数据库管理系统,是一种开源软件由瑞典MySQL  AB公司开发,08年1月16日被Sun公司收购,09年Sun公司又被Oracle公司收购。

    由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

    MySQL属于轻量级数据库,也就是小中型数据库

    MySQL数据库优点:

            1,成本:MySQL是免费的,并且它的技术支持也很便宜;

            2,速度:MySQL胜过它的大多数竟争对手功能;

            3,MySQL提供了开发人员所需要的大多数功能;

            4,可移植:MySQL可以在绝大多数的操作系统中运行,易于使用和管理。

    3. 在Docker中运行MySQL

    使用官方镜像可以快速启动一个MySQL Server实例,如下所示:

    $ docker run --name hi-mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:latest e6cb906570549812c798b7b3ce46d669a8a4e8ac62a3f3c8997e4c53d16301b6
    以上指令中的hi-mysql是容器名称,123为数据库的root密码。
    使用docker ps指令可以看到现在运行中的容器:
    1. $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    2. e6cb90657054 mysql "docker-entrypoint.sh" 4 minutes ago Up 3 minutes 3306/tcp hi-mysql

    当然,还可以使用--link标签将一个应用容器连接至MySQL容器:

    $ docker run --name some-app --link some-mysql:mysql -d application-that-uses-mysql

    MySQL服务的标准端口是3306,用户可以通过CLI工具对配置进行修改:

    $ docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_ PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ ROOT_PASSWORD"'

    官方MySQL镜像还可以作为客户端,连接非Docker或者远程的MySQL实例:

    $ docker run -it --rm mysql mysql -hsome.mysql.host -usome-mysql-user -p

    4.  系统与日志访问

    用户可以使用docker exec指令调用内部系统中的bash shell,以访问容器内部系统:

    $ docker exec -it some-mysql bash

    MySQL Server日志可以使用docker logs指令查看:

    $ docker logs some-mysql

    5. 使用自定义配置文件 

    如果用户希望使用自定义MySQL配置,则可以创建一个目录,内置cnf配置文件,然后将其挂载至容器的/etc/mysql/conf.d目录。比如,自定义配置文件 为/my/custom/config-file.cnf,则可以使用以下指令:
    $ docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_ PASSWORD=my-secret-pw -d mysql:tag
    这是新的容器some-mysql启动后,就会结合使用/etc/mysql/my.cnf和/etc/mysql/conf.d/config-file.cnf两个配置文件。

    6. 脱离cnf文件进行配置 

    很多的配置选项可以通过标签(flags)传递至mysqld进程。这样用户就可以脱离cnf配置文件,对容器进行弹性的定制。比如,用户需要改变默认编码方式,将所有表格的编码方式修改为uft8mb4,则可以使用以下指令:
    $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

    如果需要查看可用选项的完整列表,可以执行:

    $ docker run -it --rm mysql:tag --verbose --help

      👑👑👑结束语👑👑👑

    为大家推荐一款刷题神奇 点击链接访问牛客网

    各大互联网大厂面试真题。基础题库到进阶题库等各类面试题应有尽有!

    牛客网面经合集,满足大厂面试技术深度,快速构建Java核心知识体系大厂面试官亲授,备战面试与技能提升,主要考点+主流场景+内功提升+真题解析

  • 相关阅读:
    react异常 Each child in a list should have a unique “key” prop
    Codeforces 1605C. Dominant Character
    常用组合逻辑verilog实现之8-3优先编码器
    星宿UI V2.1 开源wordpress资源下载小程序,流量主激励视频广告
    Editor扩展常用API
    yamot:一款功能强大的基于Web的服务器安全监控工具
    Prometheus字段解析
    常用封装工具类
    [ 图 论 ]二分图判定及其匹配(基础+提高)
    python使用matplotlib.pyplot画图时总会提示“内核似乎挂掉了,很快就会自动重启”
  • 原文地址:https://blog.csdn.net/qq_62294245/article/details/126438796