1. 下载 Anemometer
2. 下载 Percona Toolkit
# wget
https://www.percona.com/downloads/percona-toolkit/2.2.18/RPM/percona-toolkit-2.2.18-1.noarch.rpm
# yum install percona-toolkit-2.2.18-1.noarch.rpm
3. 安装httpd 和 php,需要 Apache webserver with PHP 5.3+ ,依赖包:bcmath,mysqli,
# yum install httpd php *bcmath* *mysqli* -y
4. 将Anemometer文件包解压,重命名为anemometer,并移动到/var/www/html 下(apache默认路径)
# unzip Anemometer-master.zip
# mv Anemometer-master /var/www/html/Anemometer
5. Anemometer 配置:存储分析数据
# /usr/local/mysql/bin/mysql -h localhost -uroot -p123456</var/www/html/Anemometer/install.sql
6. 创建用户
# mysql -h localhost -uroot -p123456 -e "grant ALL ON slow_query_log.* to 'anemometer'@'%' IDENTIFIED BY 'anemometer';"
# mysql -h localhost -uroot -p123456 -e "grant select on *.* to 'anemometer'@'%' identified by 'anemometer';"
注意:赋予【on *.* 】的权限是因为做执行计划时,每个表可能在不同的库,需要use database;
7. 修改可以视化界面 Anemometer 的配置信息
# cd /var/www/html/Anemometer/conf
# mv sample.config.inc.php config.inc.php
# vi config.inc.php
8. 修改apache的配置文件
# cat /etc/httpd/conf/httpd.conf |grep "ServerName"
# ServerName gives the name and port that the server uses to identify itself.
ServerName 192.168.56.10:80 # 修改为对应的IP地址
重启 httpd 服务
# /etc/init.d/httpd start
9. 浏览器访问
10. 查看日志,排错。
# tail -f /etc/httpd/logs/error_log
11. 错误处理:
Q1:timezone问题
A1:
修改下/etc/php.ini 配置文件
date.timezone = Asia/Chongqing
重启 httpd 服务。
Q2: mysql.sock 套接字问题
A2:
# mkdir -p /var/lib/mysql/
# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
重新浏览器访问:OK
12.将慢查询日志通过pt-query-digest分析后存入数据库
# pt-query-digest --version
pt-query-digest 2.2.18
<a>. 针对 pt-query-digest 版本 <2.2
# pt-query-digest --user=anemometer --password=anemometer --socket=/tmp/mysql.sock \
--review h=localhost,D=slow_query_log,t=global_query_review \
--review-history h=localhost,D=slow_query_log,t=global_query_review_history \
--no-report --limit=0% \
--filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \
/data/mysql/mysql3308/data/slow.log
<b>. 针对 pt-query-digest 版本 >=2.2
# pt-query-digest --user=anemometer --password=anemometer --socket=/tmp/mysql.sock \
--review h=localhost,D=slow_query_log,t=global_query_review \
--history h=localhost,D=slow_query_log,t=global_query_review_history \
--no-report --limit=0% \
--filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \
/data/mysql/mysql3308/data/slow.log
注意:如果你的mysql是通过sock方式连接的话,建议加上--socket指定sock文件,执行完以上的命令,
数据库里就会多出global_query_review 表和global_query_review_history表了。
查询后可获得慢查询日志的结果: