首页 > 数据库 >【5.0】Docker部署MySQL

【5.0】Docker部署MySQL

时间:2023-08-29 16:03:19浏览次数:45  
标签:5.0 容器 MySQL cnf mysql home Docker my

【一】引入

  • 根据您提供的内容,我们可以看出在使用Docker运行MySQL容器时,如果没有进行目录映射,配置文件和表数据都将保存在容器内部。
  • 当删除容器后,这些数据也会丢失。
  • 为了确保数据的持久化并避免数据丢失的情况,您可以进行目录映射来将数据保存在宿主机上。

【二】操作步骤

【1】做目录映射:

  • 在宿主机上创建用于存储MySQL数据、配置文件的目录。
mkdir /home/mysql
mkdir /home/mysql/conf.d
mkdir /home/mysql/data/

【2】配置文件my.cnf:

  • 在创建的目录/home/mysql中创建配置文件my.cnf,指定MySQL的配置参数。
  • 以下是一个示例:
vim /home/mysql/my.cnf
[client]
default-character-set=utf8
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

【3】运行MySQL容器,并进行目录映射:

  • 使用-v参数指定目录映射,将宿主机上的目录映射到MySQL容器内部对应的路径。
  • 以下是一个示例:
docker run -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3307:3306 --name mysql mysql:5.7 -e MYSQL_ROOT_PASSWORD=123456

【4】创建库、表和插入数据:

  • 运行MySQL容器后,可以连接到MySQL并执行相应的SQL语句来创建数据库、表,并插入数据。

【5】停止和删除容器:

  • 如果需要停止或删除MySQL容器,可以使用以下命令:
docker stop mysql
docker rm mysql
  • 注意,这不会影响已经进行目录映射的数据,数据仍然保存在宿主机的对应目录中。

【6】重新运行容器:

  • 当需要重新运行MySQL容器时,只需再次运行带有目录映射参数的docker run命令:
docker run -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3307:3306 --name mysql mysql:5.7 -e MYSQL_ROOT_PASSWORD=123456
  • 此时,之前的数据将会重新加载到容器内部。

标签:5.0,容器,MySQL,cnf,mysql,home,Docker,my
From: https://www.cnblogs.com/dream-ze/p/17665045.html

相关文章

  • 【4.0】Docker容器操作
    【一】Docker容器操作Docker容器是基于Docker镜像创建的运行实例。把镜像运行成容器,并且一个镜像,可以运行出多个容器【二】运行容器使用以下命令可以将一个Docker镜像运行为一个或多个容器:dockerrun镜像名称每次运行此命令,将创建一个新的容器实例。可以根据需......
  • 【8.0】Docker迁移备份
    【一】镜像的来源:通过dockerpull命令拉取镜像:dockerpull<image_name>该命令将从Docker镜像仓库(如DockerHub)下载指定名称的镜像,并将其存储到本地。通过容器打包成镜像:dockercommit<container_name><image_name>这条命令会将指定的容器打包成一个新的镜像,并根据......
  • 【7.0】Docker部署nginx
    【一】拉取Nginx镜像:dockerpullnginx该命令将从DockerHub上获取最新的Nginx镜像,并将其下载到本地。【二】运行Nginx容器:dockerrun-id--namenginx-p80:80nginx这条命令将在后台启动一个名为"nginx"的容器,并将容器内部的Nginx服务的80端口映射到主机的80端口。......
  • 【6.0】Docker部署Redis
    【一】拉取Redis镜像dockerpullredis该命令将从DockerHub上获取最新的Redis镜像,并将其下载到本地。【二】创建数据和配置目录mkdir/root/datavim/root/redis.conf第一行命令创建一个目录用于持久化Redis数据。第二行命令使用vim编辑器创建一个Redis配置文件,文件......
  • 【9.0】Docker之Dockerfile
    【引入】部署的镜像来源【1】从仓库拉取从仓库拉取:可以通过使用dockerpull命令从远程仓库拉取已经构建好的镜像。例如,要拉取名为nginx的镜像,可以运行以下命令:dockerpullnginx【2】容器做成镜像可以使用dockercommit命令将正在运行的容器创建成一个新的镜像。这......
  • 【10.0】Docker之私有仓库
    【一】创建私有仓库【1】注册docker账号docker官网Docker:AcceleratedContainerApplicationDevelopment按照步骤注册即可【2】登陆Docker账号【3】查看仓库点击上方的Repositories【4】创建仓库点击右上角CreateRepositoriesRepositoryName......
  • Spring Cloud与Docker高并发微服务架构设计实施---微服务监控中心
    在众多正在运行的微服务中,我们必须做到随时掌握每一个服务的运行情况及其健康状态,才能保证整个平台的稳定性和可靠性。使用Hystrix断路器仪表盘功能就可以创建一个监控中心,实现在线监控微服务的运行状态。(此处代码有待完善)首先,在项目的配置管理中心中增加依赖配置<dependencies......
  • Mysql主从备份时遇到的坑
    SHOWVARIABLESLIKE 'server_id' 配置完不同步时,一定要看一下这个值是否一致, 原因是我在my.ini里手工加了一条server-id=2,在手工加的下面,还有一条系统自带的server-id=1,把我的那条冲掉了,所以一直失败!!!......
  • MySQL默认情况下的排序方式
    1、问题:今天在做开发时碰到了一个问题,使用了最简单的sql语句查询,条件中也只有一个条件,语句类似如下:SELECT*FROM`people`WHEREschool_id='1234';查询出的结果为3条,本以为应该按照数据库的插入顺序查出来,即按照主键ID的升序排列,但是得出的结果却不是,确实按照了其中一个字......
  • mysql主从搭建(最全最详细)
    1. 下载mysql解压包Mysql newer version:  8.0.33cat/etc/redhat-release  查看centOS版本https://downloads.mysql.com/archives/community/  社区版下载地址根据操作系统版本选择相应版本tar包,目前最新版本是8.0.33 2. 解压配置mysql查看mysql用户组是否......