参考

https://www.runoob.com/docker/docker-install-mysql.html

安装

基础命令

1
2
3
4
5
6
7
8
docker images
docker search mysql
docker pull mysql 或指定版本 mysql:5.7.35 mysql:8.0.21
docker ps
docker logs mysql
docker exec -it mysql /bin/bash //进入容器
mysql -h localhost -u root -p //客户端登录
select version(); //查看版本

默认配置运行

1
2
3
4
5
6
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql --lower_case_table_names=1 
# root 密码 123456
# 设置表名参数名等忽略大小写

// 外部通过 3307 访问内部端口 3306
docker run -p 3307:3306 --name mysql5 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.35 --lower_case_table_names=1

自定义配置

  1. 创建目录 /Users/mac126/study/docker/mysql及子目录 confdata

  2. conf 目录添加配置文件 my.cnf,修改配置

    修改完后通过 docker container cp ./my.cnf mysql:/etc/mysql/my.cnf 覆盖原配置文件

1
2
3
4
5
docker container cp mysql:/etc/mysql/my.cnf ./

[mysqld]
#表名不区分大小写
lower_case_table_names=1
  1. 运行

    1
    2
    3
    4
    docker run -d -p 3306:3306 --privileged=true -v /Users/mac126/study/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /Users/mac126/study/docker/mysql/mysqld:/var/run/mysqld -v /Users/mac126/study/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql --lower_case_table_names=1

    #表名不区分大小写
    --lower_case_table_names=1
  2. 随 Docker 启动

    1
    docker update --restart always mysql