mysql故障排查

MySQL是目前企业最常见的数据库之一日常维护管理的过程中,会遇到很多故障汇总了常见的故障,MySQL默认配置无法满足高性能要求

一 MySQL逻辑架构图

  • 客户端和连接服务
  • 核心服务功能
  • 存储擎层
  • 数据存储层

 二 MySQL单实例常见故障

故障1

ERROR 2002 (HY000): Can't connect to local MySQL server through socket'/data/mysql/mysql.sock' (2)

问题分析

数据库未启动或者数据库端口被防火墙拦截

解决方法

启动数据库或者防火墙开放数据库监听端口

故障2

ERROR 1045 (28000): Access denied for user 'root@ocalhost' (using password:NO)

问题分析

密码不正确或者没有权限访问

解决方法

修改my.cnf主配置文件,在[mysqld]下添加skip-grant-tables

①update更新user表authentication string字段

②重新授权

故障3

故障现象

在使用远程连接数据库时偶尔会发生远程连接数据库很慢的问题

问题分析

DNS解析慢、客户端连接过多

解决方法

修改my.cnf主配置文件(增加skip-name-resolve参数数据库授权禁止使用主机名

故障4

Can't open file: 'xxx, forums.MYI.(errno: 145)

问题分析

服务器非正常关机,数据库所在空间已满,或一些其它未知的原因对数据库表造成了损坏

因拷贝数据库导致文件的属组发生变化

解决方法

修复数据表(myisamchk、phpMyAdmin)

修改文件的属组

故障5

故障现象

ERROR 1129 (HY000): Host xxx.xxx.xxx.xxx is blocked because of manyconnection

errors;unblock with 'mysgladmin flush-hosts'

问题分析

超出最大连接错误数量限制

解决方法

①清除缓存(flush-hosts关键字)

②修改mysql配置文件 (max_connect errors=1000)

故障6

故障现象

Too many connections

问题分析

连接数超出MySQL的最大连接限制

解决方法

①修改MySQL配置文件 (max connections = 10000)

②临时修改参数

set GLOBAL max connections=10000;

故障 7

Warning: World-writable config file '/etc/my.cnf' is ignored ERROR! MySQL is running but PID file could not be found
问题分析:

MySQL 的配置文件/etc/my.cnf 权限不对。

解决方法:

chmod 644 /et/my.cnf

故障8

故障现象

InnoDB: Error: page 14178 log sequence number 29455369832lnnoDB: is in the future! Current

system log sequence number 29455369832

问题分析

innodb数据文件损坏

解决方法

修改my.cnf配置文件(innodb_force_recovery=4)启动数据库后备份数据文件

利用备份文件恢复数据

三MySQL主从环境常见故障

故障一

故障现象

从库的Slave_IO_Running为NO

The slave l/0 thread stops because master and slave have equal MySQL serverids: these ids

must be different for replication to work (or the --replicate-same-server-id option must be used on

slave but this does not always make senseplease check the manual before using it).

问题分析:

主库和从库的server-id值一样

解决方法

①修改从库的server-id的值,修改为和主库不一样

②重新启动数据库并再次同步

故障现象 2

从库的 Slave_IO_Running 为 NO

问题分析:

造成从库线程为 NO 的原因会有很多,主要原因是主键冲突或者主库删除或更新数据,从库找不到记录,数据被修改导致。通常状态码报错有 1007、1032、1062、1452 等。

解决方法一:

mysql> stop slave; mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; mysql> start slave;

解决方法二:

设置用户权限,设置从库只读权限

set global read_only=true;

故障 3

故障现象

Error initializing relay log position: l/O error reading the header from the binarylog

问题分析

从库的中继日志relay-bin损坏

解决方法

手工修复,重新找到同步的binlog和pos点,然后重新同步即可mysql> CHANGE MASTER TO

MASTER LOG FILE='mysql-bin.xxx,MASTER LOG POS=xxx;

四 MySQL优化

案例1

硬件优化

CPU:推荐使用S.MP架构的多路对称

CPU内存:4GB以上的物理

内存磁盘:RAID-0+1磁盘阵列或固态

硬盘

MySQL配置文件优化

调整配置项

案例 2

SQL优化

尽量使用索引进行查询

优化分页GROUP BY优化

MySQL架构优化

架构选择:主从、主主、一主多从、多主多从 

调优思路:

  • 分库分表思路和优劣
  • my.cnf 内参数的优化
  • MySQL服务优化--内存的使用,磁盘的使用
  • 操作系统的优化--内核、TCP连接数量
  • 磁盘 IO优化
  • 数据的应用--怎样取数据,SQL语句的优化
  • 数据库设计与规划--以后再修改很麻烦,估计数据量,使用什么存储引擎
  • 硬件优化
硬件优化

CPU—— 64 位、高主频、高缓存,高并行处理能力内存——大内存、主频高,尽量不要用 SWAP

硬盘——15000转、RAID5、raid10 。 SSD

网络——标配的千兆网卡,10G网卡,bond0,MySQL服务器尽可能和使用它的web服务器在同一局域网内,尽量避      免诸如防火墙策略等不必要的开销

 数据库设计与规划(架构上的优化)

纵向拆解: 专机专用

例:现在公司一台服务器同时负责 web、ftp、数据库等多个角色。 R720 dell 内存 :768G

纵向拆解后就是:数据库服务器专机专用,避免额外的服务可能导致的性能下降和不稳定性。

横向拆解: 主从同步、负载均衡、高可用性集群,当单个 MySQL 数据库无法满足日益增加的

需求时,可以考虑在数据库这个逻辑层面增加多台服务器,以达到稳定、高效的效果。

查询优化

建表时表结构要合理,每个表不宜过大;在任何情况下均应使用最精确的类型。例如,如果ID列用int是一个好主意,    而用text类型则是个蠢办法;TIME列酌情使用DATE或者DATETIME。

索引,建立合适的索引。

查询时尽量减少逻辑运算(与运算、或运算、大于小于某值的运算);

减少不当的查询语句,不要查询应用中不需要的列,比如说 select * from  等操作。

减小事务包的大小;

将多个小的查询适当合并成一个大的查询,减少每次建立/关闭查询时的开销;

某些过于复杂的查询拆解成多个小查询,和上一条恰好相反

建立和优化存储过程来代替大量的外部程序交互。

磁盘 IO 规划,IO 相关的技术

raid 技术:raid0或raid10

SSD:

15000转、RAID5、raid10 。 SSD swap 分区:最好使用 raid0 或 SSD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/518616.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(echarts)title和legend不重叠/legend图例滚动显示不换行

(echarts)title和legend不重叠/legend图例滚动显示不换行 title和legend都被放置在了不同的位置,从而避免了重叠。你可以根据实际的图表布局和需求调整left(水平位置)和top(垂直位置)等属性,确保它们不会相…

【SCI绘图】【箱型图系列1 python】多类对比及各类下属子类对比

SCI,CCF,EI以及核心期刊绘图宝典,爆款更新,助力科研! 本期分享: 【SCI绘图】【箱型图系列1】多类对比各类下属子类对比 文末附带完整代码: 1.环境准备 python 3 from matplotlib import pyp…

QT-QPainter

QT-QPainter 1.QPainter画图  1.1 概述  1.1 QPainter设置  1.2 QPainter画线  1.3 QPainter画矩形  1.4 QPainter画圆  1.5 QPainter画圆弧  1.6 QPainter画扇形 2.QGradient  2.1 QLinearGradient线性渐变  2.2 QRadialGradient径向渐变  2.3 QConicalGr…

【Unity每日一记】如何从0到1将特效图集制作成一个特效

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

Prometheus+grafana环境搭建Nginx(docker+二进制两种方式安装)(六)

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前五篇链接如下 Prometheusgrafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客 Prometheusgrafana环境搭建rabbitmq(docker二进制两种方式安装)(二)-CSDN博客 Prometheusgrafana环…

数据分析python代码——数据填充

在Python中,我们通常使用pandas库来处理和分析数据。数据填充是数据预处理的一个重要步骤,用于处理数据中的缺失值。以下是使用pandas库进行数据填充的示例代码: 在数据分析中,处理缺失值(空值)是一个重要…

基于微信小程序的实验室预约系统的设计与开发

个人介绍 hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的…

c语言文件操作(超详细)

前言 这次的博客,可以让大家快速掌握文件操作,方便大家快速找到不懂的内容 文件操作的作用以及基础 1. 为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收&…

(arxiv2401) CrossMAE

作者团队来自加州大学伯克利分校(UC Berkeley)和加州大学旧金山分校(UCSF)。论文主要探讨了在MAE的解码中,图像patch之间的依赖性,并提出了一种新的预训练框架 CrossMAE。 论文的主要贡献包括: …

代码随想录-算法训练营day02【滑动窗口、螺旋矩阵】

专栏笔记:https://blog.csdn.net/weixin_44949135/category_10335122.html https://docs.qq.com/doc/DUGRwWXNOVEpyaVpG?uc71ed002e4554fee8c262b2a4a4935d8977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结 建议…

(源码+部署+讲解)基于Spring Boot和Vue的大学生快递代取服务平台的设计与实现

一、引言 本报告旨在详细阐述基于Spring Boot后端框架和Vue前端框架的大学生快递代取服务平台的设计与实现过程。该平台旨在为大学生提供便捷的快递代取服务,解决因时间冲突或距离过远而无法及时取件的问题。通过该平台,用户可以发布代取需求&#xff0c…

[中级]软考_软件设计_计算机组成与体系结构_07_存储系统

存储系统 层次划存储概念图局促性原理分类存储器位置存取方式按内容存储按地址存储 工作方式拓展 往年真题 高速缓存(cache)概念案例解析:求取平均时间 Cache与主存的地址映射映像往年真题 主存编制计算编址大小的求取编址与计算存储单元编址内容总容量求取例题解析…

java爬虫入门程序

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version> </dependency><!-- 爬虫需…

github生成新的SSH密钥

首先是参考官方文档 生成新的 SSH 密钥并将其添加到 ssh-agent述 当你在创建SSH密钥时遇到提示&#xff1a; Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):这一步是让你选择保存生成的SSH密钥对的文件名和位置。如果你直接按回车键&#xff08;[Pr…

Java项目:基于Springboot+vue实现的医院住院管理系统设计与实现(源码+数据库+开题报告+任务书+毕业论文)

一、项目简介 本项目是一套基于Springbootvue实现的医院住院管理系统设 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简…

Activity入门2——生命周期与任务栈

OnCreate与OnDestroy OnCreate&#xff1a;创建一个活动。 OnDestroy&#xff1a;销毁一个活动。 假设某个用户在一个活动里输入了一些信息&#xff0c;用户由于某些原因退出了该活动&#xff0c;返回时希望能够还原之前输入的信息&#xff0c;不然重新输入就太麻烦了。 pub…

软考高级架构师:嵌入式软件开发概念和例题

一、AI 讲解 嵌入式软件开发和传统软件开发的差异 嵌入式软件开发与传统软件开发在目标、环境和开发过程等方面有显著的差异。下面通过对比的方式&#xff0c;简要阐述这些差异所在&#xff1a; 特性嵌入式软件开发传统软件开发开发目标针对特定硬件系统&#xff0c;强调软硬…

【Fn+windows键】‘Windows键+L’不能锁屏的问题

winL锁屏 3个键盘灯1.NumLock指示灯2.CapsLock指示灯3.ScrollLock指示灯 2.电脑锁屏问题 突然发现winL不能锁屏&#xff0c;反而是在自己打开的软件界面内编辑 各种操作之下&#xff0c;发现键盘上最不常用的灯亮了 所以了解了一番键盘灯的功能 3个键盘灯 1.NumLock指示灯 N…

快递费用一目了然:taobao.item_fee API在电商中的应用

taobao.item_fee API在电商中的应用主要体现在精准计算快递费用&#xff0c;从而为用户提供一个更加透明和便捷的购物体验。这一接口允许淘宝或天猫的开发者根据商品ID、收货地址等信息&#xff0c;精确计算商品的快递费用。对于用户而言&#xff0c;这意味着在购物过程中能够实…

工厂模式图

工厂模式 介绍一下简单工厂模式与工厂方法模式 结构图 简单工厂模式 工厂方法模式