11
PHP连接数据库慢,MySQL连接慢,localhost 解析为::1 的解决办法

在服务器内部ping localhost的时候会发现解析的ip不是127.0.0.1,而是::1,如下图:


在cmd中ping localhost解析出来的是IPV6的::1,原因是windows有个优先解析列表,当ipv6的优先级高于ipv4时,就会出现这种情况。这个会导致个别php 程序连接mysql的时候使用localhost连接的时候会非常慢,可以修改优先级的方法解决,即修改ipv4优先级高于ipv6的记录到优先解析表中。具体方法如下:



1).右键win10 home---->命令提示符(管理员)(A)     (就用是管理员权限打开cmd)




2).输入命令  netsh interface ipv6 show prefixpolicies,查询ipv6优先级



请注意,IPv6地址(:: / 0)优先于IPv4地址(:: / 96,:: ffff:0:0/96),因此我们可以制定策略,使IPv6不会比任何IPv4地址有利。其中,标签表示优先级,0表示优先级最高,依次类推。



3):现在需要设置使::/96、::ffff:0:0/96的优先级高于::/0和::1/128,在命令行中依次设置优先级:


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


运行效果如下图:




4):完了后输入命令netsh interface ipv6 show prefixpolicies查看优先级:



可以看到,此时:: / 96,:: ffff:0:0/96优先级高于::/0了。



5): 现在ping一下localhost,正常了:



ok.此时会发现之前连接mysql爆慢的php程序速度秒开了。

这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!