Installation前提,已经搭建好Docker环境,关于dockerInstallation可参考我另一篇文章《Docker Installation》

一、Docker安装MySQL

  1. 拉取Docker镜像

    docker pull mysql:5.7
  2. 运行MySQL容器,参数说明见-说明1

    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=密码 \
    -d mysql:5.7

二、MySQL配置

  1. 修改MySQL配置文件,my.cnf内容见-说明2

    vi /mydata/mysql/conf/my.cnf
  2. 容器的mysql 命令行工具连接

    docker exec -it mysql mysql -uroot -p

    注意:会提示输入密码,也就是上面2RunContainer时Configuration的密码

  3. 设置root 远程访问

    grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;
  4. 刷新MySQL配置

    flush privileges;
  5. 重启MySQL容器

    docker restart mysql
  6. 设置启动Docker是启动MySQL容器

    docker update --restart=always mysql

说明1: -p 3306:3306:将Container的3306 端口映射到主机的3306 端口

-v /mydata/mysql/conf:/etc/mysql:将Configuration File夹挂载到主机

-v /mydata/mysql/log:/var/log/mysql:将LoggingFile夹挂载到主机

-v /mydata/mysql/data:/var/lib/mysql/:将Configuration File夹挂载到主机

-e MYSQL_ROOT_PASSWORD=密码:root 用户密码

注意:log\data\conf几个File夹及Path不用手动新建,Run时会自动Create。


说明2:

my.cnfFile内容:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

说明: skip-name-resolve:跳过DomainAnalysis

default-character-set=utf8:Settings编码