• docker 安装mysql5.7


    docker 安装mysql5.7

    前言

    MySQL 是目前最流行的关系型数据库管理系统,开发者是瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。具有体积小、速度快、成本低等特点。

    • MySQL是开源的,目前属于Oracle公司
    • MySQL支持大型的数据库。
    • MySQL使用标准的SQL数据语言形式。
    • MySQL可以运行于不同的操作系统上。
    • MySQL支持多种语言,例如Java、Python、PHP等等

    下载地址

    MySQL 下载

    安装

    安装docker不在本文讲解,本文只讲解使用docker安装Mysql5.7

    1. 拉取镜像
    docker pull mysql:5.7
    
    • 1
    1. 创建目录
    mkdir -p /home/dockerdata/mysql/conf
    mkdir -p /home/dockerdata/mysql/logs
    mkdir -p /home/dockerdata/mysql/mysql
    
    • 1
    • 2
    • 3
    1. 创建配置文件
    cd /home/dockerdata/mysql/conf/
    vi my.cnf
    
    [client]
    default-character-set=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [mysqld]
    lower_case_table_names=1
    #取消 group 严格模式
    sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    character-set-server=utf8mb4
    #保存后退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    配置文件介绍:

    ​ 目前上方的配置文件是比较精简的配置文件,如果需要,可以自行添加相关配置

    • default-character-set : 设置Mysql客户端默认的字符集
    • lower_case_table_names : 是否区分大小写,有三个值1、2、0
      • 1-存储在磁盘是小写,比较时不区分大小写
      • 2-存储为给定的大小写但是比较时是小写
      • 0-存储为给定的大小写和比较时区分大小写
    • sql-mode :
      • ONLY_FULL_GROUP_BY : GROUP BY 聚合操作,如果在select列里面,没有在GROUP BY中出现,则这个sql不合法
      • NO_AUTO_VALUE_ON_ZERO : 该值会影响自增列的插入,意思是自增长列可以为0,默认情况下自增长列是从1开始,如果你插入id为0的数据会报错,设置该参数后,可以正常插入id为0的数据
      • STRICT_TRANS_TABLES : 如果一个值不能插入到一个事务中,则中断操作,对非事务不限制
      • NO_ZERO_IN_DATE : 不允许日期和月份为0,例如2022-01-00是不允许的,但是0000-01-01是允许的
      • NO_ZERO_DATE : 不允许插入零日期,不支持插入包含0的日期
      • ERROR_FOR_DIVISION_BY_ZERO : 在insert或者update中,如果数据被清除,则产生错误而非警告,如果未给出该模式,那么数据被清除时Mysql会返回NULL
      • NO_AUTO_CREATE_USER : 禁止GRANT创建密码为空的用户
      • NO_ENGINE_SUBSTITUTION : 如果需要的存储引擎被禁用或者未编译,那么抛出错误,不设置此值,用默认的存储引擎替代,并抛出一个异常
      • PIPES_AS_CONCAT : 将"||"视为字符串的连接操作符而非或运算符,和Oracle数据库是一样的。
      • ANSI_QUOTES : 不能使用双引号来引用字符串,因为会被解释为识别符。
    1. 运行
    docker run --restart always -p 3306:3306 --name mysql -v /home/dockerdata/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/dockerdata/mysql/logs:/logs -v /home/dockerdata/mysql/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
    
    • 1

    参数介绍:

    • —restart always : 在容器退出后总是重启容器
    • -p 3306:3306 : 将容器的3306端口映射到主机的3306端口
    • —name mysql : 设置实例名称是mysql
    • -v …/… : 将宿主机目录挂载到容器内部,前面的是宿主机目录,后面的是容器目录,上方命令挂载了my.cnf、日志目录、mysql数据目录
    • -e MYSQL_ROOT_PASSWORD=root : 设置初始化root用户密码
    • -d : 以后台方式运行实例
    • mysql:5.7 : 指定使用mysql:5.7这个镜像来创建和运行实例
    1. 设置mysql root用户可以远程登录,需要bash连接到docker里面
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
    • 1
    • 2

    如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。

    原文链接: https://monkey.blog.xpyvip.top/archives/docker安装mysql57

  • 相关阅读:
    java开发面试 自我介绍!!!!!
    [论文阅读] (25) 向量表征经典之DeepWalk:从Word2vec到DeepWalk,再到Asm2vec和Log2vec(二)
    GIS前端编程 地图常用操作
    安卓14通过“冻结”缓存应用程序腾出CPU,提高性能和内存效率
    Python可变长关键字参数,传入时使用变量值而不是变量名作为键
    618京东到家APP-门详页反爬实战
    Go切片排序
    数学建模笔记-第四讲-拟合
    如何在Nuxt3.0中使用MongoDB数据库
    爬虫---》selenium4.0+使用
  • 原文地址:https://blog.csdn.net/baidu_23966735/article/details/126796335