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
## 浏览器访问主机地址下载
其它
作业要求
- 自行创建虚拟机,红帽 or centos操作, 如果有买云服务,也可以安装在云上;
- 安装Mysql数据库;
- 安装 Percona Toolkit 工具包;
- 开启mysql慢日志;
- 执行语句:select sleep(20);
- pt-query-digest 分析慢日志,生成文件名:工号_slow_report.log