Docker安装mysql将data数据目录挂载到本地磁盘

$ docker run -d --name mysql -p 3306:3306 \

> -e MYSQL_ROOT_PASSWORD=root \
> -e Innodb_use_native_aio=true \
> -v F:\\Docker\\mysql\\data:/var/lib/mysql \
> -v F:\\Docker\\mysql\\conf\\conf.d:/etc/mysql/conf.d \
> -v F:\\Docker\\mysql\\conf\\mysql.conf.d:/etc/mysql/mysql.conf.d \
> -v F:\\Docker\\mysql\\log:/var/log/mysql \
> --restart=on-failure:3 --privileged=true \
> mysql:5.7.35

微信截图_20210816182311

关键是-e后的INNODB_USE_NATIVE_AIO=On要写上(至于具体原因请路过的大佬指出),也可以在上述命令行中加上--privileged=true

对于数据挂载通常有以下两种:

docker run volume... 不能挂载文件必须是目录,路径可以不存在,会覆盖目标目录或文件(一些配置文件需要提前复制出来),如果宿主机目录为空时,会保留容器内目录内容

docker run --mount type=bind | volume,src=,dst=,...可以挂载文件或目录,会覆盖目标目录或文件(一些配置文件需要提前复制出来),如果宿主机目录为空时,不会保留容器内目录内容

对正在运行中的容器无挂载方法

注:
mysql官方支持内核级别的AIO,称为native AIO,参数为innodb_use_native_aio.(asynchronous io)

posted @ 2021-08-16 18:38  编程混子  阅读(1195)  评论(0编辑  收藏  举报