mysql出现unauthenticated user简单分析以及解决
当用show processlist;看到如下信息时:
LL | login | NULL |
| 697 | unauthenticated user | 218.26.219.186:26944 | NULL | Connect | NULL | login | NULL |
| 699 | unauthenticated user | 218.204.126.130:41099 | NULL | Connect | NULL | login | NULL |
| 700 | unauthenticated user | 201.91.135.204:43806 | NULL | Connect | NULL | login | NULL |
经过查证,不管连结的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查
mysqld 会尝试去反查 IP -> dns ,由于反查解析过慢,无法应付快速多量的查询
解决办法:
1、修改my.ini文件,在 [mysqld] 行下添加 –skip-name-resolve ,重新启动mysql服务
2、访问的主机授权时用IP,最好把该主机的IP及主机名写到/etc/hosts文件中
经过以上的设定及重新启动过后,直到现在还没有看到一个 unauthenticated user 的情况发生
近日还是会持续的观察 Mysql 的运作情况,如有问题将会持续的禀报及解决
经过这样处理后,就只能通过localhost访问数据库,如果在/etc/hosts加别名到127.0.0.1 是不行的.会出现报错:
[root@X ~]# mysql -h127.0.0.1 -p
Enter password:
ERROR 1130 (00000): Host '127.0.0.1' is not allowed to connect to this MySQL server
所以如果在使用了多个Mysql访问主机名时,激活–skip-name-resolve
就会导致系统只允许 localhost访问.而127.0.0.1访问就会被拒绝.
相关文档:
在一些情况下,MySQL可以直接使用索引来满足一个 ORDER BY 或 GROUP BY 子句而无需做额外的排序。尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了。 使用索引的MySQL Order By 下列的几个查询都会使用索引来解决 ORDER BY ......
在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而 短时间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间 只需几十秒。
一、双机互备、全自动切换方案 ......
终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件. 分享如下.
1. 环境: windows server 2003 + Apache 2.0 + PHP5 + MySQL 4.0.26 .
2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复 ......
在windows下:
打开命令行窗口,停止mysql服务(或者在任务管理器里结束掉mysqld-nt.exe进程): Net stop mysql
启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe
执行:mysqld-nt --skip-grant-tables
另外打开一个命令行窗口,执行mysql
use mysql
update us ......