Docker中MySQL数据如何导入导出

63人浏览 / 0人评论 / 添加收藏

现在的服务器很多是Linux操作系统,系统是内部网络,不能连接外网。如何方便快捷高效部署就成为了考虑事项,而Docker容器化部署就很受欢迎。

Docker是一组平台即服务(PaaS)的产品。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为容器。托管容器的软件称为Docker引擎。Docker能够帮助开发者在轻量级容器中自动部署应用程序,并使得不同容器中的应用程序彼此隔离,高效工作。

有时候Linux服务器无法安装数据库连接客户端工具,就需要进行手动的命令行进行操作。这种情况下,我们如何进行数据库的导入和导出操作呢?本篇将进行简单介绍。

在了解本篇的内容之前,需要对docker的命令做一个了解。如果需要学习docker命令行操作知识,可以查看我之前的文章:docker命令大全

1:docker中查看 mysql 运行名称

docker ps -a

2:备份docker数据库

由第一步的结果可知,我们的 mysql 运行在一个叫 mysql_server 的 docker 容器中。而我们要备份的数据库就在里面,叫做 test_db。mysql 的用户名密码均为root,我们将文件备份到/opt/sql_bak文件夹下。示例命令如下:

docker exec -it mysql_server【docker容器名称/ID】 mysqldump -uroot -p123456【数据库密码】 test_db【数据库名称】 > /opt/sql_bak/test_db.sql【导出表格路径】

3:导入到docker的mysql数据库中

原理:从外部拷贝sql文件到mysql_server的容器中,然后在容器中执行mysql命令进行导入。

方法1:

先将文件导入到容器 #docker cp **.sql 【容器名】:/root/ 

进入容器 #docker exec -ti 【容器名/ID】sh 

将文件导入数据库 # mysql -uroot -p 【数据库名】 < ***.sql

原理:直接从容器外部进行导入

方法2:

docker exec -i mysql_server【docker容器名称/ID】 mysqltest_db_copy【数据库名称】 < /opt/sql_bak/test_db.sql【本地数据表路径】

全部评论