docker部署mysql并挂载数据卷
docker部署mysql并挂载数据卷
·
docker部署mysql并挂载数据卷
-
备份mysql源文件
-
windows下备份数据库
# 方法一:进入到mysql安装路径下的bin文件,执行备份命令 # pg_dump -h localhost -p 数据库端口 -U 数据库用户名 -d 要备份的数据库名 > 备份后文件的路径\备份文件名 mysqldump -hlocalhost -uroot -p demo_mysql > D:\demo_mysql.sql # 方法二:通过Navicat提取sql备份文件
-
ubuntu下备份数据库
# mysqldump -hIP -u用户名 -p 要备份的数据库名 > 备份后文件的路径\备份文件名 mysqldump -hlocalhost -uroot -p demo_mysql > /home/demo_mysql.sql
-
-
创建数据卷
# 创建总数据卷文件夹 mkdir /home/centos/data-volume # 创建mysql数据卷文件夹 mkdir /home/centos/data-volume/mysql-volume # 创建mysql-data、databasefile、log文件夹 cd /home/centos/data-volume/mysql-volume; mkdir mysql-data; mkdir databasefile; mkdir log;
-
下载镜像并创建运行容器
# 下载指定镜像版本或者下载最新版本(mysql:latest) docker pull mysql:5.7.30 # 创建并运行容器 docker run -it -d --name demo-mysql \ -v /home/centos/data-volume/mysql-volume/mysql-data:/var/lib/mysql \ -p 23307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.30
参数 说明 -i 以交互模式运行容器,通常与 -t 同时使用 -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用 -d 后台运行容器,并返回容器ID –name 为容器指定一个名称 -v 绑定一个数据卷,数据卷不会随着容器的删除而消失,格式为:主机(宿主)数据卷文件或目录:容器文件或目录 -p 指定端口映射,格式为:主机(宿主)端口:容器端口 -e 设置默认用户root的密码,格式为MYSQL_ROOT_PASSWORD=密码 -
查看容器信息
# 查看容器是否运行 docker ps # 查看容器列表(得到容器名或者容器ID) docker ps -a # 查看容器日志 docker logs 容器名或者容器ID # 获取容器的元数据 docker inspect 容器名或者容器ID
-
还原数据库
-
通过工具或者命令把最开始备份的文件上传到/home/centos/data-volume/mysql-volume/databasefile目录下
-
复制备份文件至容器中
# docker cp 宿主机文件路径 容器名或者容器ID:容器文件路径 docker cp /home/centos/data-volume/mysql-volume/databasefile/demo_mysql.sql demo-mysql:/home
-
进入容器
# exec命令可以进入容器并且在退出时不会打断容器运行 docker exec -it demo-mysql /bin/bash
-
登录mysql命令行控制台
# mysql -U 用户名 -p mysql -u root -p # 输入创建容器时设置的密码
-
创建新的数据库(在执行还原命令前需要创建一个空的数据库)
# 以下为mysql命令行控制台状态 # 创建新的数据库(需要与原来数据库名相同) mysql> create database demo_mysql; # 查看数据库列表 mysql> show databases; # 退出控制台状态 mysql> \q
-
执行数据库还原命令
# mysql -u用户名 -p 数据库名(需要与原数据库名相同) < 要导入的数据库数据(demo_mysql.sql) mysql -uroot -p demo_mysql < /home/demo_mysql.sql
-
退出容器
exit 或者 Ctrl + D
-
-
保存日志
# 将容器的日志实时下载到指定路径: docker logs -f 容器名或者Id >> 路径/文件 & docker logs -f demo-mysql >> /home/centos/data-volume/mysql-volume/log/demo-mysql.log & #查看日志 docker logs -f demo-mysql cat /home/centos/data-volume/mysql-volume/log/demo-mysql.log
更多推荐
已为社区贡献1条内容
所有评论(0)