Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL常见故障与优化

MySQL常见故障与优化方式

作者:敢敢936

这篇文章主要介绍了MySQL常见故障与优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>

一、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)

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

解决方法:

3.故障三

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

问题分析:

解决方法:

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 many connection errors; unblock with 'mysqladmin flush-hosts'

问题分析:

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

解决方法:

清除缓存(flush-hosts关键字)修改mysql配置文件 (max_connect_errors=1000)

6.故障六

Too many connections

问题分析:

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

解决方法:

修改MySQL配置文件 (max_connections=2000)临时修改参数:set GLOBAL max_connections=2000;

7.故障七

Warning:World-writable config file '/etc/my.cnf' is ignoredERROR! MySQL is running but PlD file could not be found

问题分析:

MySQL的配置文件/etc/my.cnf 权限问题

解决方法:

chmod 644 /etc/my.cnf

8.故障八

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

问题分析:

innodb数据文件损坏

解决方法:

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

二、主从环境常见故障

1.故障一

从库的Slave_lO_Running为NO

The slave I/O thread stops because master and slave have equal MySQL serverids; these ids must be different for replication to work (or the --replicate-same-server-idoption 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_lO_Running为NO

问题分析:

主键冲突或者主库删除或更新数据,从库内找不到记录,数据被修改导致

解决方法:

方法一 

mysql> stop slave;

mysqI> 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 点,然后重新同步即可

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

三、mysql优化

可以从不同角度进行优化:

1.硬件优化

cpu:64位,高主频,高缓存,高并行处理能力

内存:大内存,主频高,尽量不要使用SWAP

硬盘:15000转,RAID5 ,RAID10   ,SSD

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

2.查询优化

1.优化建表结构

2.建立合适的索引

3.查询时尽量减少逻辑运算

4.减少不当的查询语句,不要查询应用中不需要的列

5.减少事务包大小

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

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

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

3.操作系统的优化

网卡bond技术

设置TCP连接数量限制,优化系统打开文件的最大限制

使用64位操作系统,64位系统可以分给单个进程更多内存,计算更快

禁止不必要启动的服务

4.my.cnf内参数的优化

4.1连接参数:

4.2缓存池设置:

4.3日志设置:

4.4lnnoDB参数设置:

4.5查询缓存和临时表位置:

4.6其他参数:

4.7安全参数:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文