Monkey 平 Monkey 平
首页
  • JAVA知识点
  • Docker
  • Linux
友情链接
关于
GitHub (opens new window)

Evan Xu

前端界的小学生
首页
  • JAVA知识点
  • Docker
  • Linux
友情链接
关于
GitHub (opens new window)
  • docker安装mysql5.7
    • docker 安装mysql5.7
      • 前言
      • 下载地址
      • 安装
  • docker安装Portainer
  • docker部署nginx
  • Docker
Monkey 平
2022-09-10
目录

docker安装mysql5.7

# docker 安装mysql5.7

# 前言

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

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

# 下载地址

MySQL 下载 (opens new window)

# 安装

安装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
编辑 (opens new window)
上次更新: 2023/02/26, 10:03:01
docker安装Portainer

docker安装Portainer→

最近更新
01
Linux文件夹权限操作
10-30
02
Linux基础知识一
10-25
03
JAVA设计模式-代理模式
10-18
更多文章>
Theme by Vdoing | Copyright © 2019-2023 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式