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 ## 安装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 ## 查看 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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywwxx.html