当前位置: 首页 > news >正文

Docker desktop安装mysql

首先本地已经有 docker 环境存在,然后可以拉取 MySQL 镜像。

相关 mysql 仓库地址:

https://hub.docker.com/_/mysql/

	# 镜像拉取 docker pull mysql:8.0.26docker pull mysql:latest# 查看镜像列表docker image ls

等待镜像完成之后就可以启动 mysql 了,注意需要配置一些启动参数

	# 启动命令docker run -it --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=12345678 mysql:8.0.28# 如果要后台启动加-d参数docker run -itd --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=12345678 mysql:8.0.28# 查看容器docker ps# 查看容器,包括已经停止的docker ps -a# 停止镜像docker kill 容器id# 再次启动已经停止的容器docker start 容器id

MySQL 提供了很多环境变量参数,可以自定义 MySQL 环境,常用的如下:

参考地址:https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html

参数名说明默认值
MYSQL_ROOT_PASSWORDroot 用户的密码my-secret-pw
MYSQL_DATABASE自定义新数据库名称
MYSQL_USER自定义用户名
MYSQL_PASSWORD自定义用户密码
MYSQL_ALLOW_EMPTY_PASSWORD是否允许启动 root 密码是空密码:非空表示 yes空表示 no
MYSQL_RANDOM_ROOT_PASSWORD使用随机 root 密码,一般从日志中查找密码:非空表示 yes空表示 no
MYSQL_ONETIME_PASSWORDroot 使用一次性密码:非空表示 yes,登录后强制要求修改空表示 no
MYSQL_INITDB_SKIP_TZINFOCONVERT_TZ() 获取时区,非空表示 disable

一般使用MYSQL_ROOT_PASSWORD就可以了

上面的情况下启动的 MySQL 能够满足基本需求,不过每次重启之后数据就丢失了,就算是开发环境这样也不能接受的,需要挂接本地磁盘,方便下次可以访问。

首先可以选择一个本地文件路径,如:C:/MySQL/data,然后映射到/var/lib/mysql,增加命令参数: -v C:/MySQL/data:/var/lib/mysql,完整命令:

docker run -itd --name mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=12345678 -v D:\DockerRepmysql\data:/var/lib/mysql -v D:\DockerRep\mysql\conf/conf.d:/etc/mysql/conf.d mysql:8.0.28
docker run --name mysql -v D:\DockerRep\mysql\conf\my.cnf:/etc/mysql/my.cnf -v D:\DockerRep\mysql\logs:/var/log -v D:\DockerRepmysql\data:/var/lib/mysql -v  D:\DockerRep\mysql\conf/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=12345678 -d -i -p 13306:3306 mysql:8.0.22

如果还要自定义配置文件可以再增加:D:\DockerRep\mysql\conf/conf.d:/etc/mysql/conf.d,然后可以用客户端登录了,而且下次启动不会丢失数据。

http://www.lryc.cn/news/124151.html

相关文章:

  • Java SpringBoot Vue ERP系统
  • 什么是CSS中的渐变(gradient)?如何使用CSS创建线性渐变和径向渐变?
  • 【深度学习】PyTorch快速入门
  • 学习Vue:组件通信
  • springboot项目打包后读取jar包里面的
  • 设计模式之七大原则
  • pytorch入门-TensorBoard和Transforms
  • 【java】Java基础——接口和实现
  • JetPack Compose 学习笔记(持续整理中...)
  • 遍历集合List的五种方法以及如何在遍历集合过程中安全移除元素
  • 【SQL应知应会】索引(二)• MySQL版
  • Android 简单的视频、图片压缩工具
  • 信息论、推理和机器学习算法之间交叉的经典例子
  • 【多线程】网络原理初识
  • Android之ADB常用命令
  • 低代码开发工具:JVS轻应用之间如何实现数据的调用?
  • 在Java中对XML的简单应用
  • Linu学习笔记——常用命令
  • PLUS操作流程、应用与实践,多源不同分辨率数据的处理、ArcGIS的应用、PLUS模型的应用、InVEST模型的应用
  • item_review-获得淘宝商品评论
  • 如何读取文件夹内的诸多文件,并选择性的保留部分文件
  • 每天一道leetcode:1129. 颜色交替的最短路径(图论中等广度优先遍历)
  • 原生js发送ajax请求---ajax请求篇(一)
  • 【ARM 嵌入式 编译系列 2.1 -- GCC 编译参数学习】
  • C++教程 - How to C++系列专栏第3篇
  • 使用Edge和chrom扩展工具(GoFullPage)实现整页面截图或生成PDF文件
  • image has dependent child images
  • Linux系统中基于NGINX的代理缓存配置指南
  • openCV项目开发实战--详细介绍如何改善夜间图像的照明(附python和C++源码)
  • rabbitmq的消息应答