Windows 7/8下连接本地MySQL慢的问题解析

问题分析

考虑到可能是程序性能问题后,我使用了xdebug的性能日志功能输出程序运行日志后发现连接mysql的函数时间居然用掉了接近95%的执行时间。

确认是mysql性能问题后,考虑是mysql的域名反查功能影响了速度,令我失望的是,在my.ini里面关闭域名反查后问题依旧存在。

百思不得其解时我突发奇想将代码中的服务器的地址从localhost修改为了127.0.0.1,那个神奇的1秒钟延迟居然消失了。

换成ip后居然就好了,难道是localhost存在啥蹊跷?打开cmd,输入ping localhost,ping输出的结果让我十分惊讶:

没错,localhost 出来的是 ipv6 地址 ::1,那么这一秒延迟的原因也很容易理解了,使用localhost连接,程序解析出来的地址是ipv6地址::1,然后去尝试连接监听这个地址的mysql, 而显然的是mysql监听的是ipv4地址127.0.0.1, ipv6连不上超时后会再去连接ipv4地址127.0.0.1, 这就是这个1秒钟延迟出现的原因。

打开windows的hosts文件,你会看到下面的注释

# localhost name resolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost

 

解决方法

方案1. 使用127.0.0.1而不是localhost去连接mysql。

方案2. 编辑hosts文件强制将127.0.0.1绑定在localhost。

时间: 2024-08-31 20:20:50

Windows 7/8下连接本地MySQL慢的问题解析的相关文章

Mysql教程之Windows 7/8下连接本地MySQL慢怎么办

  最近本地调试网站的时候个别程序如phpcms一直出现这个问题,速度异常慢,偶尔发现下面的文章,才提醒了我,原来问题这样的... 最近在windows上开发应用的时候发现一个有趣的问题:我的本地程序连接本地mysql库居然要延迟1秒钟左右才能打开. 问题分析 考虑到可能是程序性能问题后,我使用了xdebug的性能日志功能输出程序运行日志后发现连接mysql的函数时间居然用掉了接近95%的执行时间. 确认是mysql性能问题后,考虑是mysql的域名反查功能影响了速度,令我失望的是,在my.in

1、win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现)

1.win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现) 一.准备知识:win10下打开Administrator的方式 在win10操作系统中,Administrator默认是隐藏和关闭的,若想使用管理员权限,需要使用cmd(以管理员方式运行)执行如下命令: net user administrator /active:yes 截图:   在执行完成命令之后,进入"控制面板\用户帐户\用户帐户\管理帐户",会出现一下界面(多出了另一个Administrat

Windows 10系统下添加本地账户的方法

1.在win10中我们进入到"设置"然后点击"账户"(具体:右击桌面空白处,然后再点击"显示设置"即可进入到如下界面了): 2.在进入到帐户中我们点击左边列表的[家庭和其他用户],选择[将其他人添加到这台电脑]具体效果如下图所示: 3.在打开进入界面我们会看到如图所示正在加载页面,时间稍长: 4.页面加载出来了,我们点击[我想要添加的人员没有电子邮件地址]: 5.在此我们如果没可以直接登录,如果没有我们点击[添加一个没有Microsoft账户的用

Win7系统怎么连接本地打印机?

  一.连接打印机的准备工作 1.确认机器系统是否支持要安装的打印机 2.准备好打印机驱动程序 3.查看电脑打印服务是否开启(默认是开启的) 二.连接本地打印机方法如下 1.安装好已经提前准备好的驱动程序; 2.点击开始-设备和打印机; 3.点击添加打印机 4. 选择本地打印机; 5. 选择打印机接口; 6. 选择对应打印机厂商和型号; 7. 选择使用当前已安装的驱动程序; 8. 输入打印机名称以便标记出此打印机; 9. 选择是否共享此打印机; 10. 至此已经完成本地打印机的添加工作,可以使用

Windows Server 2003 下配置 MySQL 集群(Cluster)教程

  这篇文章主要介绍了Windows Server 2003 下配置 MySQL 集群(Cluster)教程,本文先是讲解了原理知识,然后给出详细配置步骤和操作方法,需要的朋友可以参考下 MySQL 群集是 MySQL 适合于分布式计算环境的高可用.高冗余版本.它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器.在 MySQL 5.0 及以上的二进制版本中,以及与最新的 Linux 版本兼容的 RPM 包中提供了该存储引擎. MySQL 群集是一种技术,

Windows 8.1下 MySQL绿色版安装配置与使用

原文:Windows 8.1下 MySQL绿色版安装配置与使用  Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载.      下载地址:http://downloads.mysql.com/archives/get/file/mysql-5.6.17-winx64.zip. 2.解压MySQL压缩包 解压到指定目录,D:\Dev\mysql-5.6.17-winx64. 3.添加环境变量 在Path中添加  D:\Dev\mysql-5.6.17-winx6

mysql-WEB程序在linux服务器下连接Mysql超时!

问题描述 WEB程序在linux服务器下连接Mysql超时! 请问下,我linux服务器部署WEB项目后,启动没报超时,但是一访问有数据的页面就报连接数据库超时.本地跑就没问题,我改了Mysql的默认时间,还是这样.要怎么解决?求大神 解决方案 先看你的 web程序能不能正常连接上数据库,然后就是执行数据库查询是否成功 解决方案二: 看是什么数据,一个是你连接字符串,是不是根本没法打开数据库. 尝试先注释掉数据库访问的代码看看

windows下搭建Apache+Mysql+PHP开发环境

原文:windows下搭建Apache+Mysql+PHP开发环境 要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位); Apache2.2;MySQL Server 5.5php-5.3 下载地址 环境下载 官方下载地址 Apache MySql PHP 至于我使用的版本已经上传到百度云提供大家下载了,这里就不多啰嗦了!! Apache Apache的安装和普通的应用程序安装没什么太大的区别,关键是配置.打开安装路径下的"conf\httpd.conf"文

jmx-【防火墙已关闭】帮看下JMX本地Main方法连接取Broker报错

问题描述 [防火墙已关闭]帮看下JMX本地Main方法连接取Broker报错 **帮我看下JMX本地Main方法连接取Broker报错 (No broker is found at any of the 1 configured urls)** JConsole通过jmxrmi连接 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi本地正常 activemq.xml配置 <!-- Licensed to the Apache Software