龙空技术网

Docker使用mysqldump工具对MySQL进行数据备份与恢复

小舟杂笔 181

前言:

现时姐妹们对“mysqldump文件”大概比较重视,朋友们都需要知道一些“mysqldump文件”的相关内容。那么小编也在网摘上收集了一些对于“mysqldump文件””的相关文章,希望朋友们能喜欢,各位老铁们快快来了解一下吧!

环境说明

使用可视化客户端(Navicat Premium)等等进行数据库SQL导出会存在一些莫名其妙的问题(比如默认值被抹去),所以要通过MySQL自带的mysqldump工具进行数据的备份和恢复

操作系统:CentOS 7Docker版本:19.03.12MySQL版本:8.0.21补充说明:示例中Docker启动的MySQL容器名字是mysql_test,密码是123456,数据库名是test,数据库test下面有表user备份步骤步骤一:

使用docker指令在当前目录下进行sql文件导出,下面罗列了几种场景:

备份指定数据库(所有表结构以及数据):docker exec -it mysql_test mysqldump -uroot -p123456 test > database_test.sql

备份指定数据库(指定表的表结构以及数据):docker exec -it mysql_test mysqldump -u root -p123456 test user > table_user.sql

备份指定数据库(仅备份所有表结构):docker exec -it mysql_test mysqldump -d -uroot -p123456 test > database_test.sql步骤二:

打开导出的sql文件,删除文件前面两行(因为执行指令的时候直接-p后面加了密码,mysqldump认为是不安全的,会报Warning),如下所示:

mysqldump: [Warning] World-writable config file '/etc/mysql/conf.d/docker.cnf' is ignored.mysqldump: [Warning] Using a password on the command line interface can be insecure.
恢复步骤步骤一:

将sql文件拷贝到容器中(这里复制到容器的/目录下):docker cp database_test.sql mysql_test:/database_test.sql步骤二:

指定编码进入容器内(否则会乱码):docker exec -it mysql_test env LANG=C.UTF-8 bash步骤三:

执行容器根目录下的database_test.sql文件(数据库test要确保已经创建):mysql -u root -p123456 -D test < /database_test.sql

标签: #mysqldump文件

上一篇MySQL外连接

下一篇MySQL删除数据