码迷,mamicode.com
首页 > 数据库 > 详细

利用 docker 还原数据库

时间:2018-09-17 20:35:09      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:当前目录   src   oob   var   文件格式   安装   数据拷贝   还原   str   

Docker 安装 MySQL
docker pull mysql
查找Docker Hub上的mysql镜像
[root@iZbp15ynf8pjgvcr486szaZ ~]#docker search mysql
技术分享图片

拉取官方的镜像,标签为5.7.23
[root@iZbp15ynf8pjgvcr486szaZ ~]# docker pull mysql:5.7.23
技术分享图片

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为mysql
[root@localhost ~]# docker images

技术分享图片

首先,创建目录mysql,用于存放后面的相关东西。

runoob@runoob:~$ mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf ~/mysql/sql
技术分享图片

查看老数据库版本号
[root@iZbp15ynf8pjgvcr486szaZ ~]# mysql --version
技术分享图片

将数据库导出sql文件格式
[root@iZbp15ynf8pjgvcr486szaZ ~]#mysql -e "show databases;" -uroot -p123456 | grep -Ev "Database|titan|information_schema|well_order" | xargs mysqldump -uroot -p123456 --databases > mysql_dump2.sql
技术分享图片

因为数据库里有个库特别大,所以将库过虑掉,grep -Ev "Database|titan|information_schema|well_order,就是将以上三个库过虑掉

将备份好的数据拷贝到刚才创建好的目录下/mysql/sql
[root@iZbp15ynf8pjgvcr486szaZ ~]# scp mysql_dump2.sql root@192.168.22.7:/root/mysql/sql
技术分享图片

使用mysql镜像运行容器

[root@localhost ~]# docker run --name mysql -p 3306:3306 --privileged=true -v /root/mysql/sql:/docker-entrypoint-initdb.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7.23
技术分享图片
说明docker运行成功
命令说明:

    -p     3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

    -v     /root/mysql/sql:/docker-entrypoint-initdb.d 将备份好的数据库文件存放在此,docker启动进会读取些文件的内容,并将数据库还原到docker

    -v    /root/mysql/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

    -e     MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

    --privileged=true  在docker run时给该容器加权限

注意:如果没加权限的话会报错:Permission denied

因为把宿主机的一个目录挂载到容器中的一个目录,当访问容器中的这个目录时,无法访问目录,权限拒绝。该问题通常在centos7下出现。或者一个容器启动成功后,里面的服务无法成功访问。

利用 docker 还原数据库

标签:当前目录   src   oob   var   文件格式   安装   数据拷贝   还原   str   

原文地址:http://blog.51cto.com/536410/2176325

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!