mysql命令大全(5.7版)

1-创建用户、创建表、授权

# %代表创建的用户具备远程连接的条件,如果只允许创建的用户本机连接,则设置为localhost或者127.0.0.1
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
#给指定的用户授予PROCESS操作权限
GRANT PROCESS ON *.* TO 'username'@'%';
#给指定用户授予指定db的全部权限
GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'%' IDENTIFIED BY 'password';

2-查看表、索引空间占用大小

SELECT
table_schema AS '数据库',
table_name AS '表名',
table_rows AS '记录数',
TRUNCATE ( data_length / 1024 / 1024, 2 ) AS '数据容量(MB)',
TRUNCATE ( index_length / 1024 / 1024, 2 ) AS '索引容量(MB)'
FROM
information_schema.TABLES
WHERE
table_schema = 'db_name'
and table_name='table'
ORDER BY
table_rows DESC,
index_length DESC;

3-查看表状态、建表结构

#查看表状态, Data_free字段为表碎片空间大小
SHOW TABLE STATUS LIKE 'table_name';
#查看建表结构
SHOW CREATE TABLE table_name;

4-释放表空间

#释放表空间,这个命令会锁表,请在db空闲时执行,最好使用root账号执行,这个释放的目标表必须是innodb引擎
OPTIMIZE TABLE TABLE_NAME;