mysql命令行操作

MySQL数据库备份和还原的常用命令

备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

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

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

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

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

 

Tags: mysql命令备份

本文地址: http://www.21andy.com/blog/20071102/655.html

 

 

 

查看数据库占用的空间

 

mysql> select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size,

    -> concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size,

    -> concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free,

    -> concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size

    -> from information_schema.tables where TABLE_SCHEMA = 'xxxdatabasename';

+-----------+---------------+-------------+------------+

| data_size | max_data_size | data_free   | index_size |

+-----------+---------------+-------------+------------+

| 65.56MB   | 0.00MB        | 123752.00MB | 6.14MB     |

+-----------+---------------+-------------+------------+

1 row in set (1.32 sec)

ect concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size,
concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size,
concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free,
concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size
from information_schema.tables where TABLE_SCHEMA = 'xxxxn';

我的mySQL使用一段时间后,表空间已变得很大(软件有较多的删除增加操作),现在我想把占用的磁盘空间减少,请教如何操作?

 

 

>user database;


>OPTIMIZE   table   tb_name;

 

 

 

使用总结,刚把一个mysql DB ,导入到新服务器上时,用OPTIMIZE   table   tb_name; 没有效果。困为mysql在传输过程中,已经优化了。

 

 

这时候把DB中的一些字段置空,查询 表空间占用情况 ,表空间没有减少。

 

查询 表空间占用情况 命令:

select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size,
concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size,
concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free,
concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size
from information_schema.tables where TABLE_NAME = 't_tb_item';

 

 

 

这时再用, OPTIMIZE   table   tb_name;  优化 ,优化后就有效果了。显示表空间减少了

 

http://milk-36.javaeye.com/blog/568367

原文地址:https://www.cnblogs.com/lexus/p/1949306.html