1、概述
在 MySQL 中提供了命令行导出数据库数据以及文件的一种方便的工具 mysqldump, 我们可以通过命令行直接实现数据库内容的导出dump, 首先我们简单了解一下 mysqldump 命令用法:
# 安装 mysqldump |
mysql 8.0 版本此命令会报错:
Unknown table ‘COLUMN_STATISTICS’ in information_schema (1109)
此处需要添加新参数 –column-statistics=0,格式如下:
mysqldump --column-statistics=0 -u root -p --databases 数据库1 数据库2 > xxx.sql |
如需设置默认参数,可修改 mysql 配置文件,添加如下参数:
[mysqldump] |
2、mysqldump 常用操作示例
- 备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql
- 备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql
- 备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql
- 备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -uroot -p123456 mydb > /data/mysqlDump/mydb.sql
- 备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql
- 备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql
- 备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql
- 一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql
3、还原 MySQL 备份内容
有两种方式还原,第一种是使用 SHELL 行完成还原,第二种是在 MySQL 命令行中
- 在系统命令行中,输入如下实现还原:
mysql -uroot -p123456 < /data/mysqlDump/mydb.sql
- 在登录进入 mysql 系统中,通过 source 指令找到对应系统中的文件进行还原:
mysql> source /data/mysqlDump/mydb.sql
4、编写BASH维护固定数量备份文件
在 Linux 中,使用 vi 或者 vim 编写脚本内容并命名为:mysql_dump_script.sh
#!/bin/bash |
如上代码主要含义如下:
1.首先设置各项参数,例如 number 最多需要备份的数目,备份路径,用户名,密码等。
2.执行 mysqldump 命令保存备份文件,并将操作打印至同目录下的 log.txt 中标记操作日志。
3.定义需要删除的文件:通过 ls 命令获取第九列,即文件名列,再通过实现定义操作时间最晚的那个需要删除的文件。
4.定义备份数量:通过 ls 命令加上 wc -l 统计以sql结尾的文件的行数。
5.如果文件超出限制大小,就删除最早创建的 sql 文件
扫描二维码,分享此文章