docker安装mysql挂载外部配置和数据目录

从docker hub上可以找到mysql外挂配置和数据目录的一些文档说明

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

从该文档中可以了解到,mysql的默认配置为/etc/mysql/my.cnf,该文件中包含了一个额外的数据目录/etc/mysql/conf.d 或者/etc/mysql/mysql.conf.d

先启动一个不带任何挂载的mysql容器

docker run -d -p 3307:3307 -e MYSQL_ROOT_PASSWORD=12345 --name mysql_test2 mysql:5.7.23

进入容器

docker exec -it mysql_test2 bash

根据上述docker hub上描述,可以发现/etc/mysql/conf.d/中存在三个文件,分别为docker.cnf,mysql.cnf和mysqldump.cnf,/etc/mysql/mysql.conf.d/下只存在一个文件mysqld.cnf

第一种启动方式

docker run -d -p 3306:3306 -v /etc/mysql/my.cnf:/etc/mysql/conf.d/mysql.cnf -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_test mysql:5.7.23

这样启动的容器中,/etc/mysql/conf.d/mysql.cnf中的内容将被/etc/mysql.my.cnf中文件内容覆盖

第二种启动方式

docker run -d -p 3306:3306 -v /etc/mysql/:/etc/mysql/conf.d/ -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_test mysql:5.7.23

这种方式将会把/etc/mysql/conf.d/下面的三个文件替换为外部挂载的my.cnf文件

第三种启动方式

docker run -d -p 3306:3306 -v /etc/mysql/my.cnf:/etc/mysql/conf.d/mysqld.cnf -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345 --name mysql_test mysql:5.7.23

登录都容器中,可以发现/etc/mysql/conf.d/中的文件多了一个mysqld.cnf,且该文件即是我们外挂的my.cnf,而/etc/mysql/mysql.conf.d/mysqld.cnf中的内容依然是之前的

以上三种方式都可以实现外挂配置和数据目录,但首先配置中的文件路径在容器中需要存在,否则mysql容器将无法正常启动。个人觉得第二种看着顺眼点。:)

MYSQL8

mysql8中,/etc/mysql/my.cnf只依赖了/etc/mysql/conf.d/目录,所以上述的第三种方式就行不通了,另外如果配置文件中设置有socket,则client和mysqld设置的socket应该一致,如果去掉,就全部去掉,其他再有错误,根据mysql中错误日志查找下原因,一般都是因为配置

docker run -d -p 3306:3306 -v /etc/mysql/my.cnf:/etc/mysql/conf.d/mysqld.cnf -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345 --name mysql_test mysql

原文地址:https://www.cnblogs.com/qq931399960/p/11670625.html

时间: 2024-10-31 10:19:53

docker安装mysql挂载外部配置和数据目录的相关文章

33.Docker安装Mysql及用户配置

mysql在官方上有两个镜像 这个是一个优化过的mysql 使用这个命令 安装mysql 演示最简单的方式去安装mysql: 这种方式安装的用户名没有,密码没有 docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server :如果本身没有安装过mysql的镜像的话会自动去下载这个镜像 docker ps:看到mysql01正在运行 我们用客户端去连接测试一下 连接不上去的原因呢是因为我们没有在mysql上加用户,加配置 docekr l

35.Docker安装Mysql挂载Host Volume

连个文件系统有块区域Area,我们要做的是把两个Area做文件映射 jesse腾讯云上有个linux的环境,版本比较老了 简书的地址: https://www.jianshu.com/p/b3bf647a726e 先把旧版的移除掉 yum -y remove docker docker-common container-selinux 设置新版本的docker的地址 yum-config-manager --add-repo https://docs.docker.com/v1.13/engin

Docker安装MySQL Tomcat Python Redis MongoDB Apache

Docker 安装 MySQL 方法一.docker pull mysql 查找Docker Hub上的mysql镜像 [email protected]:/mysql$ docker search mysql NAME                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED mysql                    MySQL is a wide

Docker安装MySQL忽略大小写问题的问题

原文:Docker安装MySQL忽略大小写问题的问题 连接MySQL: 查看当前mysql的大小写敏感配置show global variables like '%lower_case%';+------------------------+-------+| Variable_name          | Value |+------------------------+-------+| lower_case_file_system | ON    || lower_case_table_

Centos 7 安装 docker ,docker 安装 mysql 、 tomcat

一.安装docker 不要看其他的博客文档.就按照菜鸟教程执行. 菜鸟教程地址: http://www.runoob.com/docker/centos-docker-install.html 装了几次启动不了.按照这个流程一遍OK 我的环境是Centos 7, 内核 3.10版本.安装docker CE,社区免费版 移除旧的版本: $ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \

虚拟机中docker安装mysql远程无法访问解决方法

#docker安装mysql docker pull mysql docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql 这个时候navicat远程连接mysql的时候,会提示以下错误: 解决方法:1.在虚拟机中登录到mysql容器,然后进入mysql docker exec -it mysql /bin/bash mysql -uroot -p Enter password: mysql> select

Ubuntu16.04 服务器 用docker安装MySQL

1.查找Docker Hub上的mysql镜像 sudo docker search mysql 2.拉取官方镜像 sudo docker pull mysql 3.查看镜像相关信息 sudo docker images 4 .使用容器运行mysql镜像 sudo docker run --name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest 5.查看容器启动 sudo docker ps 6.docker

Docker安装MySQL 8.0并挂载数据及配置文件

安装部署环境 Ubuntu 18.04.3 LTS Docker 19.03.2 MySQL latest(8.0.17) 下载镜像 # docker从仓库中拉取最新版的mysql镜像,如果没加标签的话,默认获取最新的版本 Docker pull mysql   挂载数据卷以及配置文件 Docker容器原则上是短暂的,如果容器被删除或损坏,任何数据或配置都将丢失.因为,我们需要将 Docker 内的 MySQL 数据文件以及配置文件转移到宿主机的指定路径. 每个人部署的 MySQL 内,可能文件

使用docker安装mysql服务

转载:https://www.cnblogs.com/notejava/p/7124189.html 使用docker官方镜像安装mysql服务 1 拉取mysql镜像,采用网易加速地址docker pull hub.c.163.com/library/mysql:5.7 2 重命名镜像名docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7 3 创建用于挂载的目录sudo mkdir /my/mysql/datadir #用于挂载mysql数据