宜春网站制作,网站搜索引擎收录,东莞网站设计费用,红色网站呢一、MySQL故障排查
1.1 故障现象与解决方法
1.1.1 故障1
1.1.2 故障2
1.1.3 故障3
1.1.4 故障4
1.1.5 故障5
1.1.6 故障6
1.1.7 故障7
1.1.8 故障8
1.1.9 MySQL 主从故障排查
二、MySQL优化
2.1 硬件方面
2.2 查询优化 一、MySQL故障排查
1.1 故障现象与解决方…
一、MySQL故障排查
1.1 故障现象与解决方法
1.1.1 故障1
1.1.2 故障2
1.1.3 故障3
1.1.4 故障4
1.1.5 故障5
1.1.6 故障6
1.1.7 故障7
1.1.8 故障8
1.1.9 MySQL 主从故障排查
二、MySQL优化
2.1 硬件方面
2.2 查询优化 一、MySQL故障排查
1.1 故障现象与解决方法
1.1.1 故障1 原因数据库未启动或者数据库端口被防火墙拦截。
解决方法启动数据库或者防火墙开放数据库监听端口。
1.1.2 故障2 原因密码不正确或者没有权限访问。
解决方法
1修改 my.cnf 主配置文件在[mysqld]下添加 skip-grant-tables重启数据库。命令如下:
mysqluse mysql;
mysql update mysql.user set authentication_stringpassword(123456) where userroot and Host localhost;
mysql flush privileges;2再删除刚刚添加的 skip-grant-tables 参数重启数据库使用新密码即可登录。
3重新授权命令如下
mysqlgrant all on *.* to rootmysql-server identified by 123456;
1.1.3 故障3
使用远程连接数据库时偶尔会发生远程连接数据库很慢的问题。
原因DNS解析慢、客户端连接过多。
解决方法修改 my.cnf 主配置文件在[mysqld]下添加 skip-name-resolve重启数据库可以解决。注意在以后授权里面不能再使用主机名授权。
1.1.4 故障4 原因
1服务器非正常关机数据库所在空间已满或一些其它未知的原因对数据库表造 成了损坏。
2可能是操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。
解决方法
使用下面的两种方式修复数据表第一种方法仅适合独立主机用户
1使用 MySQL 自带的专门用户数据表检查和修复工具 myisamchk。一般情况下只有在命令行下面才能运行 myisamchk 命令。常用的修复命令为
myisamchk -r 数据文件目录/数据表名.MYI
通过 phpMyAdmin 修复 phpMyAdmin 带有修复数据表的功能进入到某一个表中后点击“操作”在下方的“表维护”中点击“修复表”即可。
注意以上两种修复方式在执行前一定要备份数据库。
2修改文件的属组仅适合独立主机用户
复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号可读写一般适用于 Linux 和 FreeBSD 用户。
1.1.5 故障5 原因超出最大连接错误数量限制。
解决办法
1使用 mysqladmin flush-hosts 命令清除缓存命令执行方法如下
mysqladmin -uroot -p -h 192.168.241.48 flush-hosts Enter password:
2修改 mysql 配置文件在[mysqld]下面添加 max_connect_errors1000然后重启 MySQL。
1.1.6 故障6
客户端报 Too many connections。
原因连接数超出 Mysql 的最大连接数限制。
解决办法
1在 my.cnf 配置文件里面增大连接数然后重启 MySQL 服务。
max_connections 10000
2临时修改最大连接数重启后不生效。需要在 my.cnf 里面修改配置文件下次重启生效。
set GLOBAL max_connections10000;
1.1.7 故障7 原因MySQL 的配置文件/etc/my.cnf 权限不对。
解决办法chmod 644 /etc/my.cnf
1.1.8 故障8 原因innodb 数据文件损坏。
解决方法修改 my.cnf 配置文件在[mysqld]下添加 innodb_force_recovery4, 启动数据库后备份数据文件然后去掉该参数利用备份文件恢复数据。
1.1.9 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_COUNTER1;
mysql start slave;
解决方法二
设置用户权限设置从库只读权限
set global read_onlytrue;
3故障现象
Error initializing relay log position: I/O error reading the header from the binary log
分析问题从库的中继日志 relay-bin 损坏。
解决方法手工修复重新找到同步的 binlog 和 pos 点然后重新同步即可。
mysqlCHANGE MASTER TO MASTER_LOG_FILEmysql-bin.xxx,MASTER_LOG_POSxxx;
二、MySQL优化
2.1 硬件方面
1推荐使用 S.M.P.架构的多路对称 CPU。例如可以使用两颗Intel Xeon 3.6GHz 的 CPU。现在比较推荐用 4U 的服务器来专门做数据库服务器。
2推荐使用 4GB 以上的物理内存。
3通常是使用 RAID-01 磁盘阵列注意不要尝试使用RAID-5MySQL 在 RAID-5 磁盘阵列上的效率并不高。如果不考虑硬件的投入成本也可以考虑固态SSD硬盘专门作为数据库服务器使用。数据库的读写性能肯定会提高很多。
2.2 查询优化
1建表时表结构要合理每个表不宜过大在任何情况下均应使用最精确的类型。
2索引建立合适的索引。
3查询时尽量减少逻辑运算与运算、或运算、大于小于某值的运算
4减少不当的查询语句不要查询应用中不需要的列比如说 select * from 等操作。
5减小事务包的大小
6将多个小的查询适当合并成一个大的查询减少每次建立/关闭查询时的开销
7将某些过于复杂的查询拆解成多个小查询和上一条恰好相反。
8建立和优化存储过程来代替大量的外部程序交互。
2.3 小结
2.3.1 软优化
1查询语句的优化比如:select 结合order by [ascldesc]排序之后的limit查询适当使用子查询结合连接表达式使用J0IN查询
2使用索引在适合创建索引的字段创建索引:经常与其他表进行连接的表在连接字段上应该建立索引、建在选择性高的字段上、建在小字段上:在不适合创建索引的字段不要盲目创建索引:唯一性太差的字段、更新太频繁地字段、大的文本字段甚至超长字段不要建立索引。
3优化子查询: 1分析表 2增加中间表 3增加冗余字段 4分析表检查表优化表
2.3.2 硬优化
1分库分表
2读写分离
对系统做分库分表、读写分离:通过缓存集群来承载大部分的读请求。