MySQL备份与恢复:mysqldump/source命令 使用教程

MySQL备份与恢复也可理解为MySQL导出与导入。不管每个人怎么理解?这些都是我们经常需要用到的技术。这不,今天有一位朋友网站需要换服务器,域名不换,涉及到整站迁移,数据还挺大的,网站根目录下大小有9G,数据库data目录下大小有6G。

 

如果我们的数据比较小(几十M),我们可以很方便的使用phpMyAdmin的导入导出功能,由于我的数据库比较大(6G),用phpMyAdmin肯定是行不通了。我这个大小也算是“MySQL大数据量处理”了吧!因此,我就用了MySQL自带的:mysqldump命令。

 

一、mysqldump 简介

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

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

 

如果需要在不同体系结构之间传输数据库,则可以使用mysqldump创建包含SQL语句的文件。然后,您可以将该文件传输到另一台计算机,并将其作为输入提供给 mysql客户端。

使用:mysqldump --help 可以查看哪些具体选项。

 

二、MySQL”备份/导出“命令:mysqldump

如果是Linux,就要进入MySQL安装目录,执行:mysqldump 命令。

如果是Windows,就要进入MySQL安装目录, cmd窗口执行:mysqldump.exe 命令。

 

1、mysqldump 命令格式:

mysqldump [选项] 数据库名 [表名] > 脚本名

mysqldump [选项] --数据库名 [选项 表名] > 脚本名

mysqldump [选项] --all-databases [选项] > 脚本名

 

2、mysqldump 选项说明:

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

 

3、mysqldump 使用示例:

 

备份所有数据库:

mysqldump -uroot -p --all-databases > /backup/mysqldump/all.db

 

备份指定数据库:

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

 

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

mysqldump -uroot -p mysql db event > /backup/mysqldump/2table.db

 

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

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

 

三、MySQL”恢复/还原“命令: source

MySQL”恢复/还原“其实有两种操作方法吧!既然都说到这里了,我就分别给大家都分享一下!对于有基础的朋友来说,都是非常的简单易懂。具体如下:

 

1、系统行命令

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

注意:在导入备份数据库前,db_name 如果没有,是需要创建的; 而且与db_name.db中数据库名是一样的才可以导入。所以,这里我首先用了 mysqladmin 创建了一个 db_name 数据库。

 

2、soure 方法

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

之所以推荐用soure,这是因为:

mysql中source命令可以导入比较大的文件。速度也还是蛮快的。

 

总结:

MySQL备份还可以通过“复制表文件”进行备份。可以通过复制表文件(*.MYD,*.MYI文件和关联*.sdi文件)来备份MyISAM表。要获得一致的备份,请停止服务器或锁定并刷新相关表:

FLUSH TABLES tbl_list WITH READ LOCK;

您只需要一个读锁;

这样,当您在数据库目录中复制文件时,其他客户端就可以继续查询表。需要刷新才能确保在开始备份之前将所有活动索引页都写入磁盘。

解锁的语句用:UNLOCK TABLES;

    A+
发布日期:2020年10月04日 17:38:19  所属分类:Mysql
最后更新时间:2020-10-04 13:45:27
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
付杰
Microsoft 全家桶 “激活码/产品密钥”永久
Microsoft 全家桶 “激活码/产品密钥”永久
  • ¥ 29.99元
  • 市场价:888元
PHP运行环境 wamp lamp lnmp 安装 配置 搭建
PHP运行环境 wamp lamp lnmp 安装 配置 搭建
  • ¥ 99.9元
  • 市场价:299元
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
  • ¥ 1.0元
  • 市场价:9.9元
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
  • ¥ 6.8元
  • 市场价:8.8元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: