SQL慢查询安装过程

SQL慢查询

基本操作

打开防火墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

安装MySQL

## 删除已安装mysql
rpm -qa | grep mysql
yum list installed | grep mysql
## 下载源
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
## 安装rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
## 安装MySQL
yum install mysql-server
## 启动服务
systemctl start mysql
## 开机自启动
systemctl enable mysql
## 查看mysql 密码
grep "password" /var/log/mysqld.log
## 进入mysql
mysql -u root -p
## 下面是在本地时,为登录方便而简化,线上需高安全
set global validate_password_policy=0;
set global validate_password_length=1;
SHOW VARIABLES LIKE 'validate_password%';
flush privileges;
## 更改当前密码
SET PASSWORD = PASSWORD('root');
## 设置用户 root 可以在任意 IP 下被访问:
grant all privileges on *.* to root@"%" identified by "root";
flush privileges;
mysql配置
vim /etc/my.cnf
## 在 [mysqld] 前添加如下代码
[client]
default-character-set=utf8
忘记密码时
service mysqld stop
mysqld_safe --user=root --skip-grant-tables --skip-networking &
mysql -u root
一些文件的存放目录
## 配置文件
vim /etc/my.cnf
## 存放数据库文件的目录
cd /var/lib/mysql
## 日志记录文件
vim /var/log/ mysqld.log
## socket文件
/var/run/mysqld/mysqld.pid

慢查询配置

mysql> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| slow_query_log | OFF    |
+----------------+-------+
1 row in set (0.05 sec)
## my.cnf里面添加
# 添加慢查询日志
log_output=file
slow_query_log=on
slow_query_log_file = /tmp/mysql-slow.log
log_queries_not_using_indexes=on
long_query_time = 1

mysql> show variables like 'slow_query_log';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| slow_query_log | ON    |
+----------------+-------+
1 row in set (0.05 sec)

mysql> show variables like '%quer%';
+----------------------------------------+---------------------+
| Variable_name                          | Value               |
+----------------------------------------+---------------------+
| binlog_rows_query_log_events           | OFF                 |
| ft_query_expansion_limit               | 20                  |
| have_query_cache                       | YES                 |
| log_queries_not_using_indexes          | ON                  |
| log_throttle_queries_not_using_indexes | 0                   |
| long_query_time                        | 1.000000            |
| query_alloc_block_size                 | 8192                |
| query_cache_limit                      | 1048576             |
| query_cache_min_res_unit               | 4096                |
| query_cache_size                       | 1048576             |
| query_cache_type                       | OFF                 |
| query_cache_wlock_invalidate           | OFF                 |
| query_prealloc_size                    | 8192                |
| slow_query_log                         | ON                  |
| slow_query_log_file                    | /tmp/mysql-slow.log |
+----------------------------------------+---------------------+
15 rows in set (0.06 sec)

## 进入linux慢日志
 service mysqld reload
 cat /tmp/mysql-slow.log 
 ## 实时查看日志
  tail -f /tmp/mysql-slow.log

安装percona-toolkit

## 安装依赖
rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL
## 下载 rpm
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
## 查看
yum list | grep percona-toolkit
## yum install
yum install percona-toolkit
## 查看是否安装成功
pt-query-digest --help
pt-table-checksum --help

作业要求

##先在MySQL 执行
select sleep(20);
## 没有文件夹就创 mkdir /developer
pt-query-digest --report  /tmp/mysql-slow.log >  /developer/20684_slow_report.log
## 下载文件到本机
### cd到log所在文件夹 python 开启简易服务器
python -m SimpleHTTPServer 8080
### 开启防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
## 浏览器访问主机地址下载

其它

作业要求

  1. 自行创建虚拟机,红帽 or centos操作, 如果有买云服务,也可以安装在云上;
  2. 安装Mysql数据库;
  3. 安装 Percona Toolkit 工具包;
  4. 开启mysql慢日志;
  5. 执行语句:select sleep(20);
  6. pt-query-digest 分析慢日志,生成文件名:工号_slow_report.log
原文地址:https://www.cnblogs.com/renqiqiang/p/9390052.html