mysqldump备份简述
mysqldump可产生两种类型的输出文件,取决于是否选用 --tab=dir_name选项。
1.不使用 --tab=dir_name选项,mysqldump产生的数据文件是纯文本的SQL文件,如CREATE(数据库、表、存储路径等)语句和INSERT(记录)语句组成。输出结果以一个文件保存,可用mysql命令去恢复备份文件。
2.使用 --tab=dir_name选项,mysqldump对于每一个需要备份的数据表产生两个输出文件:一个是带分隔符的文本文件,备份的数据表中的每行存储为文本中的一行,以"表名.txt"保存;另一个输出文件为数据表的CREATE TABLE语句,以"表名.sql"保存。
mysqldump语法和选项
在linux系统中,可以使用 man mysqldump命令,或者,mysqldump -hlep命令查看相关选项的使用
--all-databases表示备份系统中所有数据库,使用 --databases参数之后,必须指定至少一个数据库的名称,多个数据库名称之间用空格隔开
【常用的选项】
1.--add-drop-table
这个选项讲会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证导回MYSQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除。
2.--add-locks
这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行操作。
3.--tab
这个选项将会创建两个文件,一个是带分隔符的文本文件,备份的数据表中的每行存储问文本中的一行,以"表名.txt"保存;另一个输出文件为数据表的CREATE TABLE语句,以"表名.sql"保存。
4.--quick或者--opt
如果你未使用--quick或者--opt选项,那么mysqldump将在转储结果之前把全部内容载入到内存中。这在你转储大数据量的数据库时将会有些问题。该选项默认是打开的,但可以使用--skip-opt关闭它。
5.--skip-comments
该选项可以去掉导出文件中的注释语句
6.--compact
该选项可以只输出最重要的语句,而不输出注释及删除表语句等。
在windows下,可以使用下面的语句导出所有的数据库
mysqldump -h 主机名 -u 用户名 -p --all-databases > C:备份文件名.sql
mysqldump -u用户名 -p --databases db1 db2 db3... > 备份文件名.sql
mysqldump -u用户名 -p --databases db_name > db_name.sql(--databases 会生成CRATE DATABASE 和 USE 语句)
mysqldump -u用户名 -p db_name > db_name.sql (不会生成CRATE DATABASE 和 USE 语句)
mysqldump -u用户名 -p 数据库名 表名1 表名2 表名3... > 备份文件名.sql
mysqldump -uroot -p -S /tmp/mysql3306.sock --databases db_name > db_name.sql
mysqldump -uroot -p -S /tmp/mysql3306.sock db_name > db_name.sql