今天遇到一个问题,某站网页加载很慢。
ChromeF12查看Network,发现加载网页html就要1s多,其他的图片资源反而加载时间很短。
写测试html,加载100ms以内。
测试php,加载100ms以内。
测试查询数据库,加载1s多。
反复测试发现连接数据库本身就要1s多,很奇怪。
谷歌加百度之,修改数据库连接文件参数localhost为127.0.0.1,连接时间立刻掉了下来= =
cmd,ping localhost,显示居然是在ping ::1,立刻打开hosts文件,修改之,问题解决
问题所在:hosts文件中,localhost没有绑定在127.0.0.1上,数据库连接locahost立刻就去监听::1了,1s后才会转到127.0.0.1上。(::1是IPv6的东西)
解决方案:
方法一:数据库连接文件修改localhost为127.0.0.1
方法二:修改hosts文件,绑定localhost在127.0.0.1上,同时确保注释掉绑定localhost在::1上(#所在行为注释)
127.0.0.1 localhost # ::1 localhost
-------------2017.12.2--
win10默认IPv6解析优先级高于IPv4优先级,所以更改hosts文件也还不行,需要手动修改优先级。
解决办法有:
1 修改注册表,
2 cmd或Powershell修改优先级。
首先以管理员模式打开cmd或者Powershell
netsh int ipv6 set prefix ::/96 50 0 netsh int ipv6 set prefix ::ffff:0:0/96 40 1 netsh int ipv6 set prefix 2002::/16 35 2 netsh int ipv6 set prefix 2001::/32 30 3 netsh int ipv6 set prefix ::1/128 10 4 netsh int ipv6 set prefix ::/0 5 5 netsh int ipv6 set prefix fc00::/7 3 13 netsh int ipv6 set prefix fec0::/10 1 11 netsh int ipv6 set prefix 3ffe::/16 1 12
ping localhost 返回127.0.0.1即成功。
发表评论: