Docker搭建MySQL并挂载数据的全过程

 更新时间:2022年01月26日 15:13:35   作者:IT王小二  
环境搭建费时费力,但要必不可少,这篇文章主要给大家介绍了关于Docker搭建MySQL并挂载数据的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

记录 Docker 搭建 MySQL 并挂载数据过程,搭建过程参考自 Docker Hub 

一、Docker搭建MySQL并挂载数据

1、首先安装好 Docker,不知道怎么安装的可以看下 CentOS7安装Docker初体验 

2、下载 MySQL5.7 镜像。

docker pull mysql:5.7

3、创建容器并挂载数据。

docker run -d --restart=always --name mysql \
-v /itwxe/dockerData/mysql/data:/var/lib/mysql \
-v /itwxe/dockerData/mysql/conf:/etc/mysql \
-v /itwxe/dockerData/mysql/log:/var/log/mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci

参数说明:

-v /itwxe/dockerData/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机
-v /itwxe/dockerData/mysql/conf:/etc/mysql:将配置文件夹挂在到主机,可以在宿主机放一份自定义 my.cnf文件,那么容器就会按自定义配置启动
-v /itwxe/dockerData/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-e MYSQL_ROOT_PASSWORD=123456:初始化123456用户的密码
--character-set-server=utf8mb4:设置字符集
--collation-server=utf8mb4_general_ci:排序方式

4、进入 MySQL 容器内部。

docker exec -it mysql /bin/bash

5、登录 MySQL。

mysql -uroot -p123456

6、查看字符集是否生效。

show variables like 'character_set_%';

二、挂载是否生效

1、上传备份 sql 到宿主机,复制宿主机备份 sql 到容器。

docker cp /itwxe/dockerData/sunny.sql mysql:/

2、进入 mysql 容器内部,导入sql。

docker exec -it mysql /bin/bash

mysql -uroot -p123456

create database sunny;
use sunny;
source /sunny.sql;

3、数据导入成功可以查询后,删除容器,并重新用命令创建容器,查看数据存在。

docker stop mysql && docker rm mysql

使用上面的命令重新创建容器,查看数据是否正常,可以看到数据正常挂载查询,此处演示的数据正常挂载保存宿主机。

其他

1.可以启动多个MySQL服务,因为我们启动的是容器,容器可以有多个,只要容器名字映射段端口不一样就可以了,例如:

$ sudo docker run --name dbdb -e MYSQL_ROOT_PASSWORD=123456 -p 6666:3306 -d mysql

2.查看所有容器(启动状态或者关闭状态)

$ sudo docker ps -a

3.启动和关闭容器

启动命令:

$ sudo docker start pwc-mysql   //通过指定容器名字
$ sudo docker start 73f8811f669e  //通过指定容器ID

关闭命令:

$ sudo docker stop pwc-mysql   //通过指定容器名字
$ sudo docker stop 73f8811f669e  //通过指定容器ID

总结 

到此这篇关于Docker搭建MySQL并挂载数据的文章就介绍到这了,更多相关Docker搭建MySQL挂载数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql逗号分隔的一行数据转为多行数据的两种方法

    mysql逗号分隔的一行数据转为多行数据的两种方法

    本文主要介绍了两种将MySQL中逗号分隔的一行数据转换为多行数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • sql脚本函数编写postgresql数据库实现解析

    sql脚本函数编写postgresql数据库实现解析

    这篇文章主要介绍了sql脚本函数编写postgresql数据库实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 查看mysql当前连接数的方法详解

    查看mysql当前连接数的方法详解

    这篇文章主要介绍了查看mysql当前连接数的方法详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • MySQL设置global变量和session变量的两种方法详解

    MySQL设置global变量和session变量的两种方法详解

    这篇文章主要介绍了MySQL设置global变量和session变量的两种方法,每种方法给大家介绍的非常详细 ,需要的朋友可以参考下
    2018-10-10
  • MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

    MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

    这篇文章介绍了MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • MySQL中in与exists的使用及区别介绍

    MySQL中in与exists的使用及区别介绍

    这篇文章主要介绍了MySQL中in与exists的使用及区别介绍,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-12-12
  • MySQL分库分表与分区的入门指南

    MySQL分库分表与分区的入门指南

    这篇文章主要给大家介绍了关于MySQL分库分表与分区的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 使用SQL查询所有数据库名和表名问题

    使用SQL查询所有数据库名和表名问题

    这篇文章主要介绍了使用SQL查询所有数据库名和表名问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • mysql去重查询的三种方法小结

    mysql去重查询的三种方法小结

    本文主要介绍了mysql去重查询的三种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Mysql官方性能测试工具mysqlslap的使用简介

    Mysql官方性能测试工具mysqlslap的使用简介

    mysqlslap随着MySQL安装的时候就自动安装好了,而且 mysqlslap 把很多的自定义测试的功能封装到了外部,使用者只需要在外部提供 SQL 语句的脚本就可以自定义测试语句,本文将简单介绍该工具的使用
    2021-05-05

最新评论