show processlist
该命令可以查看当前所有数据库连接的线程状态,root用户能够看到所有正在运行的线程,普通用户只能看到自己正在运行的线程。
主要结果列解释:
user:用户
db:数据库
command:执行命令,一般是休眠(sleep)、查询(query)、链接(connect)
time:线程运行时间(单位秒)
该命令可以帮助我们排查数据库相关问题,比如连接数过多导致的问题(报错“too many connections”)
status:线程运行状态,执行中(executing)
info:该线程执行的sql命令
show variables like ‘xxx’
使用场景一:查看慢日志相关参数
mysql> show variables like 'slow_query%';
+---------------------------+----------------------------------+
| Variable_name | Value |
+---------------------------+----------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /mysql/data/localhost-slow.log |
+---------------------------+----------------------------------+
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
设置方法一:全局变量设置
# 将 slow_query_log 全局变量设置为“ON”状态
mysql> set global slow_query_log='ON';
# 设置慢查询日志存放的位置
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
# 查询超过1秒就记录
mysql> set global long_query_time=1;
设置方法二:配置文件设置
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1
重启mysql
service mysqld restart