MySQL 常用命令

高安全的生产环境下只能使用命令行操作数据库,下面介绍一些常用命令。

连接 DB

$ mysql -h192.168.0.221 -P3306 -u账号 -p密码 [db_name]

or better:

$ mycli -h192.168.0.221 -P3306 -u账号 -p密码 [db_name]

查看库

// 查看所有库
$ show databases;

+------------------+
| Database         |
|------------------|
| db_name_1        |
| db_name_2        |
+------------------+

// 进入某个库
$ use db_name_1;

查看表

所有表

$ show tables [from db_name];

+---------------------+
| Tables_in_db_name   |
|---------------------|
| table_name_1        |
| table_name_2        |
+---------------------+

所有表状态

显示当前使用或者指定的 DB 中的每个表的信息。

由于字段较多,可用 \G 参数按列显示(行转列),起到显示美化的作用,方便查看:

$ show table status [from db_name] \G;

Name            | table_name
Engine          | InnoDB
Version         | 10
Row_format      | Compact
Rows            | 59079
Avg_row_length  | 133
Data_length     | 7880704
Max_data_length | 0
Index_length    | 21069824
Data_free       | 5242880
Auto_increment  | 75437
Create_time     | 2017-04-13 20:51:55
Update_time     | None
Check_time      | None
Collation       | utf8_general_ci
Checksum        | None
Create_options  |
Comment         | 测试表

比较重要的字段:

字段描述
Rows行的数目。部分存储引擎,如 MyISAM,存储精确的数目。 对于其它存储引擎,比如 InnoDB,是一个大约的值,与实际值相差可达40到50%。在这些情况下,使用 SELECT COUNT(*) 来获得准确的数目。
Avg_row_length平均的行长度。
Data_length对于 MyISAMData_length 是数据文件的长度(以字节为单位)。 对于 InnoDBData_length 是聚簇索引 clustered index 大约分配的内存量(以字节为单位)。
Index_length对于 MyISAMIndex_length 是索引文件的长度(以字节为单位)。 对于 InnoDBIndex_length 是非聚簇索引 non-clustered index 大约分配的内存量(以字节为单位)。
Auto_increment下一个 AUTO_INCREMENT 值。

表结构

查看列名(三者等价):

$ show columns from table_name [from db_name];
$ show columns from [db_name.]table_name;
$ desc table_name;  // 简写形式

索引

$ show index from table_name;

建表语句

$ show create table table_name;

查看用户权限

显示一个用户的权限,显示结果类似于 GRANT 命令:

$ show grants [for user_name@'192.168.0.%'];

+---------------------------------------------------------------------------------------------+
| Grants for user_name@192.168.0.%                                                            |
+---------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE ON `db_name`.`table_name` TO 'user_name'@'192.168.0.%' |
+---------------------------------------------------------------------------------------------+

查看系统相关

系统状态

显示一些系统特定资源的信息,例如,正在运行的线程数量。

$ show status;

系统变量

显示系统变量的名称和值。

$ show variables;

DB 进程

显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。

// 查看当前 DB 进程
$ show processlist;
$ show full processlist;
+----------+-----------+--------------------+---------+---------+------+-------+------------------+
| Id       | User      | Host               | db      | Command | Time | State | Info             |
+----------+-----------+--------------------+---------+---------+------+-------+------------------+
| 33702451 | user_name | 192.168.0.200:49764 | db_name | Query   |    0 | init  | show processlist |
+----------+-----------+--------------------+---------+---------+------+-------+------------------+
字段描述
Id标识,用途:kill 33702451 杀死指定进程。
User显示执行 SQL 的用户。
Host显示这个账号是从哪个 IP 连过来的。
db显示这个进程目前连接的是哪个数据库 。
command显示当前连接的执行命令,一般就是休眠( sleep ),查询( query ),连接( connect )。
Time这个状态持续的时间,单位是秒。
State显示使用当前连接的 SQL 语句的状态。
Info显示执行的 SQL 语句。

权限

显示服务器所支持的不同权限。

$ show privileges;

存储引擎

$ show engies; // 显示安装以后可用的存储引擎和默认引擎。 

$ show innodb status; // 显示innoDB存储引擎的状态 

$ show logs; // 显示BDB存储引擎的日志

警告与错误

$ show warnings; // 显示最后一个执行的语句所产生的错误、警告和通知 

$ show errors; // 只显示最后一个执行语句所产生的错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dylan、

耕码不易,白嫖可耻

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值