前言

使用docker安装mysql&redis更简便节省了很多配置,并且其中的服务是相互独立的,可以做到一台机器开启多个服务。

1、安装mysql镜像文件

1.1、安装

  1. docker pull mysql:5.7

docker安装mysql - 图2

1.2、查看镜像

  1. docker images

docker安装mysql - 图3

2、创建实例并启动

2.1、创建启动

  1. docker run -p 3306:3306 --name mysql \
  2. -v /mydata/mysql/log:/var/log/mysql \
  3. -v /mydata/mysql/data:/var/lib/mysql \
  4. -v /mydata/mysql/conf:/etc/mysql \
  5. -e MYSQL_ROOT_PASSWORD=root \
  6. -d mysql:5.7
  7. # 如果 \ 转置不能用就去除,使用以下命令
  8. docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

docker安装mysql - 图4

2.2、命令结束

参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机 ,冒号前为主机地址后为容器地址
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码

2.3、查看运行实例

  1. docker ps

docker安装mysql - 图5

3、编写mysql配置文件

mysql默认编码不是utf-8

3.1、编写主机挂载的配置文件

  1. vim /mydata/mysql/conf/my.cnf

3.2、配置内容

  1. [client]
  2. default-character-set=utf8
  3. [mysql]
  4. default-character-set=utf8
  5. [mysqld]
  6. init_connect='SET collation_connection = utf8_unicode_ci'
  7. init_connect='SET NAMES utf8'
  8. character-set-server=utf8
  9. collation-server=utf8_unicode_ci
  10. skip-character-set-client-handshake
  11. skip-name-resolve

3.3、重启mysql容器

  1. docker restart mysql

docker安装mysql - 图6

4、进入容器内部

4.1、进入容器

  1. docker exec -it mysql /bin/bash

4.2、查看之前主机修改的文件内容

  1. cat /etc/mysql/my.cnf

docker安装mysql - 图7

4.3、退出容器

  1. exit

docker安装mysql - 图8

5、关闭容器

  1. docker stop mysql

docker安装mysql - 图9