1.拉取镜像(版本自行参考)
docker pull mysql:8.0.32
2.创建docker挂在目录
mkdir -p log data conf
放的位置自行决定
3.在conf下创建my.cnf配置文件并导入如下内容
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
#服务端口号 默认3306
port=3306
#skip-grant-tables
datadir = /home/mysql/data
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 最大连接数
max_connections=200
# 连接失败的最大次数。防止有人从该主机试图攻击数据库系统
max_connect_errors=20
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
4.docker运行mysql
docker run \
-p 3306:3306 \ #映射的端口自行决定
--restart=always \ #自启
--name mysql \ #容器取名
--privileged=true \ #赋予权限
-v /home/mysql/log:/var/log/mysql \ #日志挂载
-v /home/mysql/data:/var/lib/mysql \ # 数据挂载
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \ #配置文件挂载
-e MYSQL_ROOT_PASSWORD="root"\ #设置登陆密码
-d mysql:8.0.32 #指定镜像
5.然后进入容器内部会有一个问题
刚才设置的登录密码没有生效,导致进不去,远程如navicate不能连接
可参考 https://zhuanlan.zhihu.com/p/610267326?utm_id=0 解决