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'@'localhost' (using password: NO)

问题分析:密码不正确或者没有权限访问

解决方法:
修改 my.cnf 主配置文件,在[mysqld]下添加 skip-grant-tables,重启数据库。最后修改密码命令
mysql>use mysql;
mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
mysql> flush privileges;

再删除刚刚添加的 skip-grant-tables 参数,重启数据库,使用新密码即可登录。

重新授权

mysql>grant all on *.* to 'root'@'mysql-server' identified by '123456';

故障现象 3

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

问题分析:由于开发机器是不能够连接外网的,在进行 MySQL 连接时,DNS 解析是不可能完成的, 从而连接就慢了。

解决方法:修改 my.cnf 主配置文件,在[mysqld]下添加 skip-name-resolve,重启数据库可以解决*(注意在以后授权里面不能再使用主机名授权。)

故障现象 4

Can't open file: 'xxx_forums.MYI'. (errno: 145)


问题分析:

服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造  成了损坏。
可能是操作系统下直接将数据库文件拷贝移动,会因为文件的属组问题而产生这个错误。

解决方法:

可以使用下面的两种方式修复数据表(第一种方法仅适合独立主机用户):

使用 MySQL 自带的专门用户数据表检查和修复工具 myisamchk。一般情况下只有在命令行下面才能运行 myisamchk 命令,常用的修复命令为:

myisamchk -r 数据文件目录/数据表名.MYI;

通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上两种修复方式在执行前一定要备份数据库。

修改文件的属组(仅适合独立主机用户):

复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号可读写(一般适用于 Linux 和 FreeBSD 用户)。

故障现象 5
ERROR 1129 (HY000): Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

问题分析:由于 mysql 数据库的参数:max_connect_errors,其默认值是 10。当大量(max_connect_errors)的主机去连接 MySQL,总连接请求超过了 10 次,新的连接就再也无法连接上 MySQL 服务。同一个 ip 在短时间内产生太多中断的数据库连接而导致的阻塞( 超过 mysql 数据库max_connection_errors 的最大值)

解决方法:
使用 mysqladmin flush-hosts 命令清除缓存,命令执行方法如下:

mysqladmin -uroot -p -h 192.168.241.48 flush-hosts Enter password:


修改 mysql 配置文件,在[mysqld]下面添加 max_connect_errors=1000,然后重启 MySQL。

故障现象 6

客户端报 Too many connections。
问题分析:连接数超出 Mysql 的最大连接数限制。解决方法:

在 my.cnf 配置文件里面增大连接数,然后重启 MySQL 服务。

max_connections = 10000


临时修改最大连接数,重启后不生效。需要在 my.cnf 里面修改配置文件,下次重启生效。

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 29455369832
InnoDB: is in the future! Current system log sequence number 29455369832

问题分析:innodb 数据文件损坏。

解决方法:修改 my.cnf 配置文件,在[mysqld]下添加 innodb_force_recovery=4, 启动数据库后备份数据文件,然后去掉该参数,利用备份文件恢复数据。

MySQL 主从故障排查

故障现象 1

从库的 Slave_IO_Running 为 NO
The slave I/O thread stops because master and slave have equal MySQL server ids; 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 sense; please 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: I/O error reading the header from the binary log

分析问题:从库的中继日志 relay-bin 损坏。

解决方法:手工修复,重新找到同步的 binlog 和 pos 点,然后重新同步即可。

mysql>CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx;

MySQL 优化

硬件方面

服务器硬件,最主要的无非 CPU、内存、磁盘三大关键因素。

(1)关于 CPU

CPU 对于 MySQL 应用,推荐使用 S.M.P.架构的多路对称 CPU。例如:可以使用两颗Intel Xeon 3.6GHz 的 CPU。现在比较推荐用 4U 的服务器来专门做数据库服务器,不仅仅是针对于 MySQL。
(2)关于内存

物理内存对于一台使用 MySQL 的 Database Server 来说,服务器内存建议不要小于2GB,推荐使用 4GB 以上的物理内存。不过内存对于现在的服务器而言可以说是一个可以忽略的问题,工作中遇到了高端服务器基本上内存都超过了 32G。

(3)关于磁盘

磁盘寻道能力(磁盘 I/O)。以目前市场上普遍高转速 SAS 硬盘(15000 转/秒)为例, 这种硬盘理论上每秒寻道 15000 次,这是物理特性决定的,没有办法改变。 MySQL 每秒钟都在进行大量、复杂的查询操作,对磁盘的读写量可想而知。所以通常认为磁盘 I/O 是制约 MySQL 性能的最大因素之一,通常是使用 RAID-0+1 磁盘阵列,注意不要尝试使用RAID-5,MySQL 在 RAID-5 磁盘阵列上的效率并不高。如果不考虑硬件的投入成本,也可以考虑固态(SSD)硬盘专门作为数据库服务器使用。数据库的读写性能肯定会提高很多。

MySQL 配置文件

通常默认的 my.cnf 配置文件无法发挥出 MySQL 最高的性能,所以需要根据不同的硬件进行优化,配置文件的优化也是重点。下面是物理内存为 32G 的数据库优化参数,具体从全局、二进制日志、主从、innodb、myisam 几个方面优化,仅供参考。
(1)default-time-zone=+8:00

默认 MySQL 使用的是系统时区,修改为北京时间,也就是所说的东八区。

(2)interactive_timeout = 120

服务器关闭交互式连接前等待活动的秒数。

(3)wait_timeout = 120

服务器关闭非交互连接之前等待活动的秒数。

(4)open_files_limit = 10240

MySQL 服务器打开文件句柄数限制。

(5)group_concat_max_len = 102400

MySQL 默认的拼接最大长度为 1024 个字节,由于 1024 个字节会出现不够用的情况, 根据实际情况进行修改。
(6)user=mysql

使用 mysql 用户运行。

(7)character-set-server=utf8、init_connect='SET NAMES utf8'

设置字符集为 utf8

(8)back_log = 600

在 MySQL 暂时停止响应新请求之前,短时间内的多少个请求可以被存在堆栈中。如果系统在短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的 TCP/IP 连接的监听队列的大小。默认值 50。
(9)max_connections = 5000

MySQL 允许最大的进程连接数,如果经常出现 Too Many Connections 的错误提示, 则需要增大此值。
(10)max_connect_errors = 6000

设置每个主机的连接请求异常中断的最大次数。当超过该次数,MySQL 服务器将禁止
host 的连接请求,直到 MySQL 服务器重启或通过flush hosts 命令清空此host 的相关信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

80V输入1.5A,DC/DC高效率降压型电源芯片--ZCC2480

产品概述: ZCC2480 是一款内部集成有功率 MOSFET 管的降压型开关稳压器。以电流模式控制方式达到快速 环路响应并提高环路的稳定性。宽范围输入电压( 4.5 V 至 80V )提供最大 1.5A 电流的高效率输出, 可在移动环境输入的条件下实现…

Java编程规范及最佳实践

文章目录 一、命名规范二、代码风格规范三、注释规范四、推荐的编程实践五、类和接口六、异常处理七、可见性八、并发九、代码复用十、代码组织和模块化十一、Java集合框架十二、输入验证十三、资源管理十四、文档和注释十五、测试和代码质量十六、代码可读性十七、性能优化十八…

Django之REST Client插件

一、接口测试工具介绍 在开发前后端分离项目时,无论是开发后端,还是前端,基本都是需要测试API接口的内容,而目前我们需要开发遵循RESTFul规范的项目,也是必然的(自己不开发前端页面)。 在网上有很多这样的工具,常用的postman,但还是需要下载安装。在这我们介绍一个VSCod…

[C++][C++类型转换]详解

目录 1.C语言中的类型转换2.为什么C需要四种类型转换?3.C强制类型转换1.static_cast2.reinterpret_case3.const_cast4.dynamic_cast 4.RTTI(了解) 1.C语言中的类型转换 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配&…

【小白学机器学习12】假设检验之3:t 检验 (t检验量,t分布,查t值表等)

目录 1 t 检验的定义 1.1 来自维基百科和百度百科 1.2 别名 1.3 和其他检验的区别 2 适用情况: 2.1 关于样本情况 2.2 适合检查的情况 2.2.1 单样本均值检验(One-sample t-test) 2.2.2 两独立样本均值检验(Independent …

2024.4.6力扣每日一题——树节点的第 K 个祖先

2024.4.6 题目来源我的题解方法一 哈希表 超内存方法二 树上倍增 题目来源 力扣每日一题;题序:1483 我的题解 方法一 哈希表 超内存 使用一个哈希表存储每个节点的祖先节点。 时间复杂度:O(n) 空间复杂度:O( n 2 n^2 n2) class…

hydra九头蛇

一、hydra简介 Hydra是一款非常强大的暴力破解工具,它是由著名的黑客组织THC开发的一款开源暴力破解工具。Hydra是一个验证性质的工具,主要目的是:展示安全研究人员从远程获取一个系统认证权限。 目前该工具支持以下协议的爆破: A…

2024年华为OD机试真题-启动多任务排序-Java-OD统一考试(C卷)

题目描述: 一个应用启动时,会有多个初始化任务需要执行,并且任务之间有依赖关系,例如A任务依赖B任务,那么必须在B任务执行完成之后,才能开始执行A任务。 现在给出多条任务依赖关系的规则,请输入任务的顺序执行序列,规则采用贪婪策略,即一个任务如果没有依赖的任务,则…

蓝桥杯小白入门赛第9场第4题 字典树考试

问题描述 蓝桥学院最近教学了字典树这一数据结构,小蓝是全班的第一名,他不仅掌握了普通字典树,还自学了 01 字典树的使用。为了展示自己的能力,他向全班同学出了以下问题: 给定一个长度为 N N N 的数组 A A A , 你能否求出表达式 ∑ i = 1 N ∑ j = i + 1 N f ( A i …

【网站项目】农业信息管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

基于STM32f103芯片的应用程序在线升级功能框架的实现

目录 基于STM32f103芯片的应用程序在线升级功能框架的实现 一、原理简介 二、KEIL软件主要设置 三、应用程序app部分 四、Bootloader部分 五、补充部分 基于STM32f103芯片的应用程序在线升级功能框架的实现 一、原理简介 我们在使用stm32的过程中,如果需要对…

[C#]OpenCvSharp改变图像的对比度和亮度

目的 访问像素值mat.At<T>(y,x) 用0初始化矩阵Mat.Zeros 饱和操作SaturateCast.ToByte 亮度和对比度调整 g(x)αf(x)β 用α(>0)和β一般称作增益(gain)和偏置(bias)&#xff0c;分别控制对比度和亮度 把f(x)看成源图像像素&#xff0c;把g(x)看成输出图像像素…

Spring Boot集成Spring Retry快速入门Demo

1.Retry介绍 Spring Retry 提供了自动重新调用失败的操作的功能。这在错误可能是暂时的&#xff08;例如瞬时网络故障&#xff09;的情况下很有用。从2.2.0版本开始&#xff0c;重试功能已从Spring Batch中撤出&#xff0c;成为一个独立的新库&#xff1a;Spring Retry 使用场景…

蓝桥杯第十五届抱佛脚(十)贪心算法

蓝桥杯第十五届抱佛脚&#xff08;十&#xff09;贪心算法 贪心算法基本概念 贪心算法是一种在算法设计中常用的方法&#xff0c;它在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是最好或最优的算法。 贪…

身份证实名认证接口的价格一般是多少呢?基于PHP身份核验接口

身份证实名认证接口分为身份证二要素、三要素、三要素人像核验接口&#xff0c;被广泛的应用于婚恋、交友、电商等等一系列行业领域&#xff0c;身份证实名认证需要实时数据&#xff0c;对于数据源来说也需要可靠&#xff0c;那么&#xff0c;身份证实名认证的价格是不是很贵呢…

小小算式(1 + 2) * (3 + 4)背后的大道理

目录 前缀表示法&#xff08;波兰表达式&#xff09; 中缀表达法 后缀表达法&#xff08;逆波兰表达式&#xff09; 三种表达法的相互转换 练习&#xff1a;逆波兰表达式求值 前缀表示法&#xff08;波兰表达式&#xff09; 波兰表示法&#xff08;英语&#xff1a;Polis…

Python学习,记录不熟悉知识点

目录 Set&#xff08;集合&#xff09; 集合内置方法完整列表 根据字符串的表达式计算结果 ​编辑 条件控制&#xff1a; if – elif – else match...case 循环语句&#xff1a; while循环 for循环 在同一行中有多个赋值操作&#xff08;先计算&#xff0c;再赋值&…

【Vue】Vue3中的OptionsAPI与CompositionAPI

文章目录 OptionsAPICompositionAPI对比总结 OptionsAPI 中文名:选项式API通过定义methods,computed,watch,data等属性方法&#xff0c;处理页面逻辑。以下是OptionsAPI代码结构 实例代码: <script lang"ts">// js或者tsimport { defineComponent } from vu…

javaScript手写专题——防抖/节流/闭包/Promise/深浅拷贝

目录 目录 一、 防抖/节流/闭包/定时器 编写一个组件&#xff0c;在input中输入文本&#xff0c;在给定的数据中查找相关的项目&#xff0c;并渲染搜索结果列表 1.新增InputSearch.vue组件 key的作用 2.新增 InputView.vue 3.添加路由 4.效果演示 follow up加上防抖怎么处理 1.…

「51媒体网」邀请媒体采访报道对企业宣传有何意义?

传媒如春雨&#xff0c;润物细无声的&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 邀请媒体采访报道对企业宣传具有多重意义&#xff1a; 提升品牌知名度和曝光度&#xff1a;媒体是信息传播的重要渠道&#xff0c;通过媒体的报道&#xff0c;企业及其活动、产品能够迅…