Fork me on GitHub

MySQL数据库备份和还原

mysql

MySQL简介

MySQL 为关系型数据库(Relational Database Management System),这种所谓的”关系型”可以理解为”表格”的概念, 一个关系型数据库由一个或数个表格组成,
如图所示的一个表格:

mysql table

表头(header): 每一列的名称;
列(row): 具有相同数据类型的数据的集合;
行(col): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人\物的方法,键的值在当前列中具有唯一性。

备份与还原常用命令

备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword db > bak.sql

备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump --add-drop-table -uusername -ppassword db > bak.sql

直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword db | gzip > bak.sql.gz

备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword --databases db1 db2 db3 > multibak.sql

备份数据库结构(–no-data, -d)

mysqldump -hhostname -uusername -p --no-data --databases db1 db2 db3 > structurebak.sql
mysqldump -hhostname -uusername -p -d db > db.sql

备份服务器上所有数据库

mysqldump –all-databases > allbak.sql

备份MySQL数据库某个(些)表

#含表结构和数据
mysqldump -hhostname -uusername -ppassword db t1 t2 > bak.sql
#不含表结构和数据
mysqldump -hhostname -uusername -ppassword -d db t1 t2 > bak.sql

备份MySQL数据库或某个(些)表数据(不包含表结构)

#数据库数据
mysqldump -hhostname -uusername -ppassword -t db > db.sql
#单张表数据
mysqldump -hhostname -uusername -ppassword -t db t> t.sql
#多张表数据
mysqldump -hhostname -uusername -ppassword -t db t1 t2 > t.sql

备份MySQL数据库,并排除某些表

mysqldump -uusername -ppassword db --ignore-table=db.table1 --ignore-table=db.table2 > db.sql

还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword db < bak.sql

还原压缩的MySQL数据库

gunzip < bak.sql.gz | mysql -uusername -ppassword db

将数据库转移到新服务器

mysqldump -uusername -ppassword db | mysql –host=*.*.*.* -C db
轻轻的我走了,正如我轻轻的来