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的。