Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124659
  • 博文数量: 69
  • 博客积分: 1550
  • 博客等级: 上尉
  • 技术积分: 676
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-22 11:13
文章分类

全部博文(69)

文章存档

2011年(1)

2010年(5)

2008年(4)

2007年(46)

2006年(13)

我的朋友

分类: Mysql/postgreSQL

2007-03-01 13:29:23

Mysql 大量 unauthenticated user
Friday, June 03, 2005, 12:29 - Apache & PHP & 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 的連線設定等,如下所示
啟動參數; with --skip-name-resolve =>這樣就可以關閉反查動作

更改 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
set-variable = wait_timeout=30
set-variable = join_buffer_size=10M
set-variable = long_query_time=20
set-variable = table_cache=256
set-variable = sort_buffer=4M
set-variable = record_buffer=1M
set-variable = back_log=500

[mysqld.server]
user=mysql
basedir=/usr/local

經過以上的設定及重新啟動過後,直到現在還沒有看到一個 unauthenticated user 的情況發生
近日還是會持續的觀察 Mysql 的運作情況,如有問題將會持續的稟報及解決

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