Chinaunix首页 | 论坛 | 博客
  • 博客访问: 422804
  • 博文数量: 55
  • 博客积分: 2331
  • 博客等级: 大尉
  • 技术积分: 605
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-26 12:03
文章分类

全部博文(55)

文章存档

2011年(2)

2010年(53)

我的朋友

分类: Mysql/postgreSQL

2010-08-29 16:04:48

今天Mysql从服务器在登陆通行证出现了“Can not connect to MySQL server:192.168.20.20”,和本周出现的一次问题同样,技术部的同事重启mysql服务就ok了。

经我的怀疑,可能是mysql连接数过高导致,应该优化一下mysql。果然,部门老大发来QQ消息,说他查看了mysql服务器了,对mysql配置做了一些优化:

 

1.一个出现大量unauthenticated user,导致mysql连接过多,所以才会死掉。就汤下面 加:--skip-name-resolve参数,调整相关参数。

2.我看他们的程序是采用了长连接,调整了一下time_out的时间。


记录此调优参数,在查看其他相关优化文档,多多加强mysql方面的优化工作。

 

查到一篇文章,转贴过来:

近日在数据库方面,发现异常的联机状况该状况在 mysql 下指令

Show Processlist;

可以看到问题该问题如下; : 3436942 : unauthenticated user : 192.168.0.52:49607 : : Connect : : login : : 3436943 : unauthenticated user : 192.168.0.52:49608 : : Connect : : login :   

会有非常多的 unauthenticated user 尝试做登入使用 mysql 的情况当这情况在无限制的发生时,就会照成系统的停顿在经过多方测试,以及询问官方原厂的响应下发现这属于官方一个系统上的特殊设定,亦可称呼他为 mysql 的 bug 不管连结的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查mysqld 会尝试去反查 IP -> dns ,由于反查解析 过慢,无法应付快速多量的查询 反查是上层 ISP 所掌控,并不是我们可以解决及要求的在知道问题的症结点后,要解决这个问题就有相对应的方法其方法分为两个步骤,  

第一是开启 Mysqld 的时候加入特定的参数启动  

第二就是修改 mysql 的联机设定等,如下所示    

  1. 启动参数; with --skip-name-resolve =>这样就可以关闭反查动作 

  2. 更改 my.cnf;加强以下设定  

[mysqld]
datadir=/services/mysql/
socket=/tmp/mysql.sock
port=3306
set-variable = key_buffer_size=64M
set-variable = max_connections=1024
set-variable = interactive_timeout=30 ------ skip-name-resolve #这样就可以关闭反查动作
[mysqld.server]
user=mysql
basedir=/usr/local

经过以上的设定及重新启动过后,直到现在还没有看到一个 unauthenticated user 的情况发生 。

阅读(1364) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~