mysql常用的导出备份命令

上一篇 / 下一篇  2016-04-06 18:10:15 / 个人分类:mysql

备份数据库mdsdb的数据(包括表结构和表数据)
/usr/bin/mysqldump --opt mdsdb>  /root/mdsdb20160406.dump

导出数据库mdsdb的表结构:
/usr/bin/mysqldump -d mdsdb > /root/mdsdb.sql

导出单个数据表结构mdsdb.mb(不包含数据)
/usr/bin/mysqldump -d mdsdb mb > /root/mdsdb.mb.sql

导出整个数据库mdsdb的数据
/usr/bin/mysqldump -t mdsdb > /root/mdsdb.sql

导出整个数据库mdsdb的结构和数据
/usr/bin/mysqldump mdsdb > mdsdb.sql

导出单个数据表结构和数据
/usr/bin/mysqldump mdsdb mb > mdsdb.sql


生成批量清空数据库mdsdb中所有表数据的命令:
/usr/bin/mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='mdsdb'"
输出结果如下:
TRUNCATE TABLE department;
TRUNCATE TABLE domain;
TRUNCATE TABLE global_bw_list;
TRUNCATE TABLE license;
TRUNCATE TABLE log_storage;
TRUNCATE TABLE log_storage_pair;
TRUNCATE TABLE mail_audit_rule;
TRUNCATE TABLE mail_monitor_rule;
TRUNCATE TABLE mail_recv_send_limit;
TRUNCATE TABLE mailing_list;
......
解释:
information_schema数据库是MySQL自带的信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。
TABLES是其中的一个表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表
-N, --skip-column-names  //不显示列信息
-s, --silent        //一行一行输出,中间有tab分隔
完善:
/usr/bin/mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='mdsdb'"|mysql mdsdb
加上|mysql mdsdb,即清空mdsdb的所有表
但是如果有外键的话,很可能会报错。因此还需要加个-f
/usr/bin/mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='mdsdb'"|mysql -f mdsdb
多执行几次,直到不报错


TAG: MySQL mysql

Test Engineer 引用 删除 蓝风雨   /   2016-04-08 16:53:28
Test Engineer 引用 删除 蓝风雨   /   2016-04-08 16:53:27
 

评分:0

我来说两句

Open Toolbar