前言
数据查询语言(DQL: Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
show status
使用SHOW STATUS语句能够获取MySQL服务器的一些状态信息,这些状态信息主要是MySQL数据库的性能参数。SHOW STATUS语句的语法格式如下:
- SHOW [SESSION | GLOBAL] STATUS LIKE 'status_name';
其中,SESSION表示获取当前会话级别的性能参数,GLOBAL表示获取全局级别的性能参数,并且SESSION和GLOBAL可以省略,如果省略不写,默认为SESSION。status_name表示查询的参数值。熟练掌握这些参数的使用,能够更好地了解SQL语句的执行频率。SHOW STATUS语句支持的参数值

show processlist;
show full processlist; 或 show processlist(默认只列出前100); //显示哪些线程正在运行
- id #ID标识,要kill一个语句的时候很有用
- user #当前连接用户
- host #显示这个连接从哪个ip的哪个端口上发出
- db #数据库名
- command #连接状态,一般是休眠(sleep),查询(query),连接(connect)
- time #连接持续时间,单位是秒
- state #显示当前sql语句的状态
- info #显示这个sql语句
show slave status \G;
MySQL同步功能由3个线程(master上1个,slave上2个)来实现。执行 DE>START SLAVEDE> 语句后,slave就创建一个I/O线程。I/O线程连接到master上,并请求master发送二进制日志中的语句。master创建一个线程来把日志的内容发送到slave上。这个线程在master上执行 DE>SHOW PROCESSLISTDE> 语句后的结果中的 DE>Binlog DumpDE> 线程便是。slave上的I/O线程读取master的 DE>Binlog DumpDE> 线程发送的语句,并且把它们拷贝到其数据目录下的中继日志(relay logs)中。第三个是SQL线程,slave用它来读取中继日志,然后执行它们来更新数据。
用于提供有关从属服务器线程的关键参数的信息
- Slave_IO_State: ID线程的状态,如果master 的所有变更都已经收到这个状态会显示为 Waiting for master to send event
- Master_Log_File: IO线程正在读取的master binlog 文件名
- Read_Master_Log_Pos: IO线程已经读完的位置
- Relay_Master_Log_File: SQL线程正在读取的master binlog 文件名
- Exec_Master_Log_Pos: SQL线程已经读取完的位置
- Slave_IO_State:
- SHOW PROCESSLIST输出的State字段的拷贝。
- SHOW PROCESSLIST用于从属I/O线程。如果线程正在试图连接到主服务器,正在等待来自主服务器的时间或正在连接到主服务器等,本语句会通知您
日志
日志类型 | 写入日志的信息 |
---|
错误日志 | 记录在启动,运行或停止mysqld时遇到的问题 |
通用查询日志 | 记录建立的客户端连接和执行的语句 |
二进制日志 | 记录更改数据的语句 |
中继日志 | 从复制主服务器接收的数据更改 |
慢查询日志 | 记录所有执行时间超过 long_query_time 秒的所有查询或不使用索引的查询 |
DDL日志(元数据日志) | 元数据操作由DDL语句执行 |
- # mysqlbinlog [options] logfile1 logfile2 ...
- mysqlbinlog的选项
- -d, --database=name 仅显示指定数据库的转储内容。
- -o, --offset=# 跳过前N行的日志条目。
- -r, --result-file=name 将输入的文本格式的文件转储到指定的文件。
- -R, --read-from-remote-server 指示mysqlbinlog命令从远程服务器读取日志文件
- -s, --short-form 使用简单格式(只显示SQL语句)。
- --server-id 指定mysql服务器,确保是由给定服务器id的mysql服务器所生成的日志。
- --set-charset=name 在转储文件的开头增加'SET NAMES character_set'语句。
- --start-datetime=name 转储日志的起始时间。
- --stop-datetime=name 转储日志的截止时间。
- -j, --start-position=# 转储日志的起始位置。
- --stop-position=# 转储日志的截止位置。
- -v, --verbose 用行事件重构伪sql语句。
- -vv 显示sql语句加字段类型。
查看日志
- mysqlbinlog --no-defaults --database=qq --start-datetime='2022-02-11 18:00:00' --stop-datetime='2022-02-11 20:00:00' --base64-output=decode-rows -v mysql-bin.000052 >18-20.log
增加 --base64-output=decode-rows –v 选项解析(目的:变成人类可以读懂的SQL语句了)
使用base64-output选项,可以控制输出语句何时是输出base64编码的BINLOG语句。以下是base64输出设置的可能值:
- never //它将在输出中显示base64编码的BINLOG语句
- always //只要有可能,它将只显示BINLOG项
- decode-rows //将把基于行的事件解码成一个SQL语句
- auto(默认) //仅为某些事件类型打印BINLOG项,例如基于行的事件和格式描述事件
总结
到此这篇关于MySQL查看数据库状态命令的文章就介绍到这了,更多相关MySQL查看数据库状态命令内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!