第十二章 数据备份与还原
第一节:数据备份
备份数据可以保证数据库中数据的安全,数据库管理员需要定期的进行数据库备份;
1.1 使用 mysqldump 命令备份
mysqldump -u username -p dbname table1 table2 ... > BackupName.sql
dbname 参数表示数据库的名称;
table1 和 table2 参数表示表的名称,没有该参数时将备份整个数据库;
BackupName.sql 参数表示备份文件的名称,文件名前面可以加上一个绝对路径。通常以 sql 作为后缀。
一、mysql导入文件或数据或执行相关SQL
1、mysql -h主机地址 -u用户名 -p用户密码,文件形式。(shell命令行)
mysql -u root -p dbname < filename.sql(前提已经有dbname这个数据库)
2 、直接放在命令行(shell命令行)执行一个sql mysql -hhostname -uusername -p dbname -e ‘select * from tbname limit 1′ 执行后命令行会提示输入数据库密码。
3、 把SQL作为一个输入给MYSQL(shell命令行) echo ‘select id from dbname.tbname where id = 1;’ | mysql -hhostname -ureadonly -preadonly dbname > xxxx.sql
4进入mysql数据库(数据库中执行SQL文件)
>source xxx.sql
二、导出库表(mysqldump)
1、mysqldump -u用户名 -p密码 -h主机 数据库 a -w “sql条件” –lock-all-tables > 路径
mysqldump -hhostname -uusername -p dbname tbname>xxxx.sql
2、 按指定条件导出数据库表内容。(-w选项 –where)
mysqldump -hhostname -uusername-p dbname tbname -w’id >= 1 and id<= 10000′–skip-lock-tables > xxxx.sql
3、或这下一行
mysqldump -hhostname -uusername -p dbname tbname –where=’unit_id >= 1 and unit_id <= 10000′> ~/xxxx.sql
三、mysqldump导出库表详细举
1、导出整个数据库
mysqldump -u 用户名 -p数据库名 > 导出的文件名
>mysqldump -u breezelark-p mydb > mydb.sql
2、导出一个表(包括数据结构及数据)
mysqldump -u 用户名 -p数据库名 表名> 导出的文件名
mysqldump -u lingxi -p mydb mytb> mytb.sql
3
导出一个数据库结构(无数据只有结构)
mysqldump -u lingxi -p -d –add-drop-table mydb >mydb.sql
-d 没有数据–add-drop-table 在每个create语句之前增加一个drop table
当然这只是导入导出的其中一种方法,大家可以感觉自己的情况选择适合自己的方法。
1.2 使用 sqlyog 图形工具备份
第二节:数据还原
2.2 使用 mysql 命令还原
Mysql -u root -p [dbname] < backup.sql
dbname 参数表示数据库名称。该参数是可选参数,可以指定数据库名,也可以不指定。指定数据库名时,表
示还原该数据库下的表。不指定数据库名时,表示还原特定的一个数据库。而备份文件中有创建数据库的语句。
2.3 使用 sqlyog 图形工具还原