mysql常用脚本

一、查询数据库和表的大小

1.查询所有数据库占用磁盘空间大小的SQL语句

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

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

from information_schema.tables

group by TABLE_SCHEMA

order by data_size desc;


2.查询单个数据库里面各个表所占磁盘空间大小包括其索引的大小

select table_name,concat(truncate(data_length/1024/1024,2),'MB') as data_size,

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

from information_schema.tables

where table_schema='myktv' order by data_length desc;


二、导出远程mysql数据库表结构至本地

1.在mysql安装路径的bin文件夹下打开命令窗体

2.输入命令:mysqldump -h192.168.1.1 -P3306 -uroot -pmm -d dbname > d:\dbname.sql

  mysqldump -h192.168.1.1 -P3308 -uroot -pmm -d --add-drop-table dbname > d:\dbname.sql

  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

3.在本地创建数据库:create database dbname;

4.导入表结构:mysql>source d:/dbname.sql


三、mysqldump备份导出数据排除某张表

就用 --ignore-table=dbname.tablename参数就行,可以忽略多个。

mysqldump -h192.168.1.1 -P3306 -uroot -pmm -d dbname --ignore-table=dbname.test1 --ignore-table=dbname.test2 > d:\dbname.sql


四、mysqldump 导出某表的部分数据

mysqldump -uroot -proot dbname test1 --where=" id <10" > test1.sql


五、导出数据中dbname多张表(test1,test2,test3)结构及表数据用用空格隔开

mysqldump -uroot -pdbpasswd dbname test1 test2 test3>db.sql;


六、mysql 用户及权限管理

MySQL权限表分别user,db,table_priv,columns_priv和host。下面分别介绍一下这些表的结构和内容:

user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。

db权限表:记录各个帐号在各个数据库上的操作权限。

table_priv权限表:记录数据表级的操作权限。

columns_priv权限表:记录数据列级的操作权限。

host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。