使用管理员用户运行命令:
mysql> show [full] processlist; # full是可选的,如果不加,默认只显示前100条结果。
可以靠这个结果来分析一些诸如用户连接状况之类的信息。譬如我当初用Navicat去连公司的远程数据库服务器,出现如下报错:
Lost connection to MySQL server at ‘waiting for initial communication packet‘, system error: 0
经查阅资料,发现在以IP地址连接MySQL时,MySQL默认会通过该地址去解析访问者的主机名。如果没有配置DNS等服务,就会在不断尝试解析的过程中超时,造成上面的错误。简单的解决办法是在MySQL服务器的 /etc/hosts 中添加一条访问者的 IP<>主机名 映射,这样就能正确解析出主机名,完成数据库连接。
只是我公司的内网环境复杂,在没有网管人员协助的情况下,难以定位最终的访问IP。这时就可以通过 show [full] processlist; 实时追踪线程来分析出正确的IP地址。