mysql unauthenticated user connect_MySQL
今天有人反应新部署项目投票系统用户访问十分缓慢 ,这个投票系统是基于PHP环境并采用短连接访问数据库mysql,查看监控数据库PHP服务器CPU负载高,MYSQL 数据库负载正常
mysql >show full processlist;
发现大量 unauthenticated user 连接信息
13012 unauthenticated user x.x.x.x:2501 None Connect Reading from net
10056 unauthenticated user x.x.x.x:2805 None Connect Reading from net
10311 unauthenticated user x.x.x.x:2306 None Connect writing to net
10326 unauthenticated user x.x.x.x:2715 None Connect login
10422 unauthenticated user x.x.x.x:2811 None Connect login
查阅网上资料,主要介绍解决方法如下:
1. 在 /etc/my.cnf 通过添加 skip-name-resolve 参数,关闭mysql的dns反查询,mysql使用IP授权
2. 在 /etc/hosts 添加IP与主机名对应关系 ,检查 /etc/resovle主DNS服务.
3. 调整mysql max_connections,max_allowed_packet ,wait_timeout,interactive_timeout 参数
经确认其实上面配置大部分参数生产环境都是已经配置过,出现大量unauthenticated user 信息时表明mysql没有给这些客户端连接请求确认凭证,也就是说mysql无法确认这些连接使用的数据库账号信息,在wait_timeout之内mysql一直等待这些连接完成, 通过测试 telnet x.x.x.x 3306 观察,在mysql数据库也会出现一条 unauthenticated user x.x.x.x:4706 None Connect Reading from net 连接, 因此这种现象不一定就是数据库问题 ,下面这些都有可能产生这种现象
1.如果应用安全问题出现大量数据库探测,出现大量这种未经授权的连接
2.应用服务压力过大出现线程异常中断导致出现大量异常数据库连接
3.应用服务异常,导致出现大量异常数据库连接
4. MySQL 客户端连接版本问题,验证协议不兼容,尤其注意old-password验证方式
最后通过投票系统加入验证码防止刷票,减少出现非法和异常连接可能性,重启PHP服务后CPU负载恢复正常,mysql数据库unauthenticated user连接也没再出现。
本文出自 “IT牛奶” 博客
上一篇: 前端优化网站性能?
推荐阅读
-
解决mysql ERROR 1045 (28000)-- Access denied for user问题
-
win10下MySQL 8.0登录Access denied for user‘root’@‘localhost’ (using password: YES)问题的解决方法
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决
-
MySQL密码正确却无法本地登录-1045 Access denied for user 'root'@'localhost' (using password:YES
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决
-
Mysql—用户表详解(mysql.user)
-
MySQL创建用户错误ERROR 1396 (HY000): Operation CREATE USER failed for 'XXXX'@'XXXX'问题解
-
mysql的“The user specified as a definer (”@’%') does not exist”问题 解决
-
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法
-
解决mysql创建数据库后出现:Access denied for user 'root'@'%' to database 'xxx'的问题