mysql备份

查看表的大小:

select data_length,index_length  from tables where  table_schema='dbname' and table_name = 'tablename';

select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB, concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB from tables where table_schema='dbname' and table_name = 'tablename';

 

查看数据库的大小:

select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='dbname';

 

 

备份:

——备份、还原整个数据库:

mysqldump -h10.10.10.10 -P8306 -uaaa -paaa dbtest > backupfile.sql

mysql -h10.10.10.10 -P8306 -uaaa -paaa dbtest < backupfile.sql

 

——仅备份数据库结构:

mysqldump -h10.10.10.10 -P8306 -uaaa -paaa  -d dbtest > structurebackupfile.sql

 

——备份单个表的结构和数据:

mysqldump -h10.10.10.10 -P8306 -uaaa -paaa dbtest tabletest > singletable.sql

 

——仅备份单个表的结构:

mysqldump -h10.10.10.10 -P8306 -uaaa -paaa  -d dbtest tabletest > singletable_nodata.sql

 

——备份多个表:

mysqldump -h10.10.10.10 -P8306 -uaaa -paaa 库名 表1 表2 表3 > mysql.sql

 

 

还原有两种方式:

1、mysql -h10.10.10.10 -P8306 -uaaa -paaa dbtest < backupfile.sql

 

2、利用source:先登录到mysql, use dbtest,然后source /home/work/bkmysql/backupfile.sql即可。

场景:迁移数据库时,目的数据库是bns的形式,在06机器上使用mysql < backupfile.sql方式报错,登录到目的数据库,使用source方式是ok的。

 

 

posted @ 2018-12-15 17:28  不爱起名字  阅读(125)  评论(0编辑  收藏  举报