赞
踩
本篇不详写prometheus、grafana的搭建,需要可以翻阅linux监控篇
注:mysql的搭建在文章尾部,这里直接进入主题
Prometheus对Mysql进行数据采集需要在被mysql所在服务器安装mysql-exporter
注意修改命令中数据库连接信息
docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="root:root@(192.168.9.61:3306)/" --name mysqldexporter prom/mysqld-exporter
- job_name: mysql
static_configs:
- targets: ['192.168.9.61:9104']
http://ip:9104/metrics
tps =并发/时间(链路时间)
show variables like '%slow_query_log%';
show variables like 'long_query_time';
show variables like '%max_connections%';
https://blog.csdn.net/weixin_42102220/article/details/113389471
https://blog.csdn.net/weixin_42102220/article/details/113389471
#修改后,拷贝到mysql路径下
docker cp /usr/local/my.cnf dbDockerName:/etc/mysql/conf.d/
docker restart dbDockerName
#进入mysql容器
docker exec -it dbDockerName bash
#查看慢查询日志,路径参考2.1 slow_query_log_file
tail -100f /var/log/slow-query.log
没有建立索引就加索引
#关键词 EXPLAIN
EXPLAIN select * from tb_user where tb_user.userid='susu';
mysqldumpslow 是mysql官方提供的一个慢日志分析工具
s:sort排序 c:访问次数 i:锁定时间 r:返回记录 t:查询时间 al:平均锁定时间 ar:平均返回记录数 at:平均查询时间 t:即为返回前面多少条数据 g:后边搭配一个正则匹配模式,大小写不敏感 1、显示出耗时最长的 50 个SQL 语句的执行信息 mysqldumpslow –s at -t 50 /var/log/slow-query.log; 2、访问次数最多的20个sql语句 (访问最频繁) mysqldumpslow -s c -t 20 /var/lib/mysql/sql-slow.log; 3、返回记录集最多的20个sql (返回结果最大排序) mysqldumpslow -s r -t 20 /var/lib/mysql/sql-slow.log; 4、得到按照时间排序的前10条里面含有做了连接的查询SQL mysqldumpslow -s t -t 10 -g "join" /var/lib/mysql/sql-slow.log;
拆分表
采用分布式缓存优化(redis)
采用全文搜索引擎(ES)
docker run -p 3307:3306 --name mysql3307 -v
/root/mysql3307/conf:/etc/mysql/conf.d -v /root/mysql3307/logs:/logs -v
/root/mysql3307/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql --
lower_case_table_names=1
-p 代表端口映射,格式为宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登录密码
lower_case_table_name mysql8高版本 忽略大小写
数据库连接报错,需调整权限
进入mysql容器
docker exec -it mysql3307 /bin/bash
登录mysql
mysql -uroot -p123456
status;
更改、刷新mysql权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
再次连接数据库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。