mysql数据库的备份与还原

一.数据备份:
1.使用mysqldump命令备份
mssqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。
mysqldump命令的工作原理很简单,他先查出需要备份的表的结构,再在文本文件中生成一个create语句,然后将表中的所有记录转换成一条insert语句,然后通过这些语句就能创建新表并插入数据
2.备份一个数据库:
MySQLdump基本用法:
mysqldump -u root -h 127.0.0.1 -p dbname > /usr/share/php/tdx.sql
其中:
dbname :数据库的名字
table1和table2:表示需要备份的表的名字,为空则备份整个数据库,
tdx.sql:文件之前可以加一个绝对路径,通常将数据库备份成一个后缀名为sql的文件
例如:用root用户备份test数据库下的persion表:
mysqldump -u root -p test persion >d:ackup.sql
3.备份多个数据库:
mysqldump -u username -p --database dbname1 dbname2 >backup.sql
4.备份所有数据库
mysqldump -u root -p -all-database > alldb.sql
 
二、直接复制整个数据库目录
先将服务停止,保证数据不会发生变化。这种方式不适用于innodb,对于myisam很方便
三、使用mssqlhotcopy工具快递备份
是属于热备份,可以不停止mysql服务器,比mysqldump快,是一个per脚本,主要应用于linux,其使用lock tables flush tables和cp来进行快速的备份
命令格式如下:
mysqlhotcopy  dbname1 dbname2 backupdir/
dbname:数据库名称
backupdir:备份文件路径
目前也使用于myisam类型的表
四:数据还原:
1.还原使用的命令如下:(用mysqldump导出的sql,最好用此方式,成功概率很高,注意.sql文件如果是utf8,建表的时候也要utf8,如果是utf8mb64,可能报错)
mysql -u root -p -h 127.0.0.1 --default-character-set=utf8 表名 < C:UsersAdministratorDesktopfsdownload dx.sql
2.还原直接复制目录备份:
通过这种方式还原时,必须保证两个mysql数据库的版本是一致的。针对myisam的表有效,针对innodb类型的表无效,innodb 的表空间不能直接复制
3.通过source命令(数据量大的时候,很有可能报错了)
use 表名
source sql文件绝对地址
原文地址:https://www.cnblogs.com/qczy/p/12305237.html