本文记录两个环境中docker 安装mysql ,主是要记录挂载目录遇到的问题.
注意:mysql 5.7这个版本目录挂载有问题,要用mysql 5.7.16以上版本,5.7版本在windows for docker 上可正常挂载目录,
构建 windows d 盘目录结构:
--d
--|-sql
-----|--logs
-----|--data
-----|--conf
-----|--bak
- windows for docker:
5.7版本在windows for docker 上可正常挂载目录,正常使用
#拉mysql 5.7版本
docker pull mysql:5.7
#运行方式一,这种跑很正常,不过回头数据库文件与日志文件都在容器中,容器挂了不方便处理
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#运行方式二,这种就把数据库文件放到windows d盘目录了,心理上感觉放心些了,容器挂了就挂了,数据库文件在这里跑不掉(暂不考虑数据库文件挂了的问题)
docker run -p 3306:3306 --name mysql -v "d:/sql/mysql/logs":/var/log/mysql -v "d:/sql/mysql/data":/var/lib/mysql/data -e MYSQL_ROOT_PASSWORD=123456 -itd mysql:5.7
- wsl2(windows 子系统 )
刚开始也用5.7 结果 总是有挂载目录权限 问题 跑不起来,后来改用5.7.16就没这个问题了
注意:mysql 5.7版本 在windows 子系统 wsl2中无法正常挂载目录,会遇到权限问题“[ERROR] Could not set file permission for ca-key.pem”,要用 mysql 5.7.16 以上版本
#拉mysql 5.7版本
docker pull mysql:5.7
#运行方式一,这种跑很正常,不过回头数据库文件与日志文件都在容器中,容器挂了不方便处理
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#运行方式二,这种就把数据库文件放到windows d盘目录了,心理上感觉放心些了,容器挂了就挂了,数据库文件在这里跑不掉(暂不考虑数据库文件挂了的问题)【这个版本不行】
sudo docker run -p 3306:3306 --name mysql_server \
-v /mnt/d/sql/mysql/logs:/var/log/mysql \
-v /mnt/d/sql/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-itd mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# 问题来了:运行总是报 “ [ERROR] Could not set file permission for ca-key.pem” 不管怎样都是不行,找了很多资料试了什么 777 744 还是没权限, 最后别人说是不要用 mysql:5.7这个镜像,要用mysql:5.7.16这个镜像,我试了下5.7.16 果然什么事都没有
docker pull mysql:5.7.16
sudo docker run -p 3306:3306 --name mysql_server \
-v /mnt/d/sql/mysql/logs:/var/log/mysql \
-v /mnt/d/sql/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-itd mysql:5.7.16 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
挂载配制文件也是一样,加一句这个就好了
-v /mnt/d/sql/mysql/conf:/etc/mysql/my.cnf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)