我正在使用MySQLpipe理员进行数据库备份。 我可以完全备份整个数据库的所有表。 有一些表的大小非常大,所以我不知道我是否只能备份表的结构(只有它们的元素),而不是他们的数据。
使用--no-data开关和mysqldump来告诉它不要转储数据,只有表结构。
这将输出表的CREATE TABLE语句。
像这样的东西
mysqldump --no-data -h localhost -u root -ppassword mydatabase > mydatabase_backup.sql
要定位特定的表格,请在数据库名称后面input它们。
mysqldump --no-data -h localhost -u root -ppassword mydatabase table1 table2 > mydatabase_backup.sql
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_no-data
正如LukeR所说,mysqldump的–no-data选项将会做你想做的事情。
补充说,这是我写的一个备份脚本,它将所有的mysql数据库转储为纯文本文件,并为每个数据库的表模式和数据创build单独的转储文件(这是很常见的想要恢复或创build另一台MySQL服务器上的表没有数据,当你只有CREATE TABLE / CREATE INDEX等命令的时候已经有了一个小文件,这样做更容易)
#! /斌/庆典 #backup-mysql.sh # #Craig Sanders <[email protected]> #这个脚本是在公共领域。 做任何你想要的东西。 MYUSER = “USERNAME” MYPWD = “PASSWD” ARGS =“ - single-transaction --flush-logs --complete-insert” DATABASES = $(mysql -D mysql --skip-column-names -B -e'show databases;'| egrep -v'information_schema'); BACKUPDIR =的/ var /备份/ MySQL的 YEAR = $(date+“%Y”) MONTH = $(date+“%m”) DAY = $(date+“%d”) DATE = “$ $年 - 月/ $ $年 - 月 - $ DAY” mkdir -p $ BACKUPDIR / $ DATE cd $ BACKUPDIR / $ DATE 为我在$ DATABASES; 做 echo -n“备份$ i:schema ...” mysqldump $ ARGS --no-data -u $ MYUSER -p $ MYPWD $ i> $ i.schema.sql 回声-n“数据...” mysqldump $ ARGS --skip-opt --no-create-db --no-create-info -u $ MYUSER -p $ MYPWD $ i> $ i.data.sql 回声-n“压缩...” gzip -9fq $ i.schema.sql $ i.data.sql 回声“完成”。 DONE #删除超过30天的备份文件 OLD = $(find$ BACKUPDIR -type d -mtime +30) 如果[-n“$ OLD”]; 然后 回声删除旧的备份文件:$ OLD echo $ OLD | xargs rm -rfv 科幻
你也可以通过执行一个DESCRIBE <tablename>并通过复制/粘贴结果来通过mysql命令行界面手动执行此操作。