MySQL 之 MySQLDump 的使用详解

数据库的主要作用就是对数据进行保存和维护,所以备份数据是数据库管理中最常用的操作。为了防止数据库意外崩溃或硬件损伤而导致的数据丢失,数据库系统提供了备份和恢复策略。

保证数据安全的最重要的一个措施就是定期的对数据库进行备份。这样即使发生了意外,也会把损失降到最低。

数据库备份是指通过导出数据或者复制表文件的方式来制作数据库的副本。当数据库出现故障或遭到破坏时,将备份的数据库加载到系统,从而使数据库从错误状态恢复到备份时的正确状态。

MySQL之MySQLDump的使用详解
MySQL

MySQLDump 简介

MySQLDump 是 MySQL 自带的逻辑备份工具。

它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的 insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。

MySQLDump 命令执行时,可以将数据库中的数据备份成一个文本文件。数据表的结构和数据将存储在生成的文本文件中。

备份命令

选项说明

参数名缩写含义
–host-h服务器 IP 地址
–port-P服务器端口号
–user-uMySQL 用户名
–pasword-pMySQL 密码
–databases指定要备份的数据库
–all-databases备份 mysql 服务器上的所有数据库
–compact压缩模式,产生更少的输出
–comments添加注释信息
–complete-insert输出完成的插入语句
–lock-tables备份前,锁定所有数据库表
–no-create-db/–no-create-info禁止生成创建数据库语句
–force当出现错误时仍然继续备份操作
–default-character-set指定默认字符集
–add-locks备份数据库表时锁定数据库表

导出备份实例

使用 mysqldump 命令备份一个数据库的语法格式如下:

mysqldump [ 选项] 数据库名 [ 表名] > 脚本名
mysqldump -u username -p dbname [tbname ...]> filename.sql

参数说明:

  • username:表示用户名称;
  • dbname:表示需要备份的数据库名称;
  • tbname:表示数据库中需要备份的数据表,可以指定多个数据表。省略该参数时,会备份整个数据库;
  • 右箭头 “>”:用来告诉 mysqldump 将备份数据表的定义和数据写入备份文件;
  • filename.sql:表示备份文件的名称,文件名前面可以加绝对路径。通常将数据库备份成一个后缀名为.sql 的文件。

备份指定数据库:

mysqldump -uroot -p test > /backup/mysqldump/test.sql

备份指定数据库指定表 (多个表以空格间隔)

mysqldump [ 选项] --数据库名 [ 选项 表名] > 脚本名
mysqldump -uroot -p mysql db event > /backup/mysqldump/2table.sql

备份所有数据库:

mysqldump [ 选项] --all-databases [ 选项] > 脚本名
mysqldump -uroot -p --all-databases > /backup/mysqldump/all.sql

备份指定数据库排除某些表

mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.sql

还原命令

mysql -u username -P [dbname] < filename.sql

其中:

  • username 表示用户名称;
  • dbname 表示数据库名称,该参数是可选参数。如果 filename.sql 文件为
  • mysqldump 命令创建的包含创建数据库语句的文件,则执行时不需要指定数据库名。如果指定的数据库名不存在将会报错;
  • filename.sql 表示备份文件的名称。

注意:mysql 命令和 mysqldump 命令一样,都直接在命令行 (cmd) 窗口下执行。

系统行命令

mysqladmin -uroot -p create db_name 
mysql -uroot -p db_name < /backup/mysqldump/db_name.sql

注:在导入备份数据库前,db_name 如果没有,是需要创建的; 而且与 db_name.db 中数据库名是一样的才可以导入。

soure 方法

mysql > use db_name
mysql > source /backup/mysqldump/db_name.sql

导入还原恢复实例

注: 用户名:root 密码:DbPasswd 生成的 sql 脚本为 db.sql

导出数据库为 DBName 的表结构 (不导数据)

mysqldump -uroot -pDbPasswd -d DBName > db.sql

导出数据库为 DBName 的表结构及其所有数据 (不加-d 即可)

mysqldump -uroot -pDbPasswd DBName > db.sql;

导出数据库为 DBName 的表 (test) 的结构

mysqldump -uroot -pDbPasswd -d DBName test > db.sql

导出数据库为 DBName 的表 (test) 的结构及其所有数据 (不加-d 即可)

mysqldump -uroot -pDbPasswd DBName test > db.sql

到此这篇关于 MySQL 之 MySQLDump 的使用详解的文章就介绍到这了, 更多相关 MySQL MySQLDump 内容请搜索玩家出品以前的文章或继续浏览下面的相关文章,希望大家以后多多支持玩家出品!

参考资料:

  • https://www.jb51.net/article/194787.htm
  • http://c.biancheng.net/view/7373.html
  • https://blog.csdn.net/zhang_java_11/article/details/115210231
  • https://www.cnblogs.com/wangzun/p/6889247.html
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
Linux 相关

bash: mysqldump: command not found 错误解决方法

2023-5-20 23:45:41

Linux 相关

Linux命令之Nano文本编辑器比vi简单易用

2023-6-6 23:51:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索