如何解决局域网内mysql数据库连接慢

 更新时间:2015年09月28日 15:20:34   作者:binary_XY.Z  
通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。非常急人,有没有办法可以解决局域网内mysql数据库连接慢呢?下面小编带领大家来解决此问题,感兴趣的朋友一起看看吧

通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。  但是ping mysql所在服务器却很快!  想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果反向解析不顺畅, 估计就会延迟很多,  给人的感觉是连接速度N慢!)
    在网上搜索了下解决办法, 发现有两种:

    一. 两边机器配置的resolve.conf不一样, 把resolve.conf配置成速度比较快的DNS就OK

    二. 把mysql配置中的DNS反向解析关掉, 也OK 

我用的是第一种办法, 修改resolve.conf配置后, 速度就上来了! 

附一: 摘自http://gcoder.blogbus.com/logs/31907502.html

    两台在同一网段的机器, 连接同一个数据库服务器, 一台的速度是另一台的100倍, 数据库主机是域名表示的. 怎么都想不明白?

    后来查看两台机器的 /etc/resolv.conf, 发现配置不一样, 改成速度快的那台机器的配置, 速度那上就上来了.

    域名解析也可以导致网络程序慢, 又一收获. 另外, mysql还有DNS反向解析的问题, 也可能导致速度慢, 可以在mysql的配置文件中, 把DNS反向解析关掉. 

    附二: 摘自

    当远程访问mysql时,mysql会解析域名,会导致访问速度很慢,加上下面这个配置可解决此问题

 # 禁止mysql做域名解析
  [mysqld]
  skip-name-resolve

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句。

    但是,这样会引起一个问题:连接mysql时,不能使用 localhost连接了,而是要使用IP地址的;如果是按localhost对用户赋权限的话,用户登录权限也要修改一下的。

    连接mysql速度慢的解决方法.

    2台服务器,一台跑iis+php,一台跑mysql,和以往一样配置好环境,测试页面一切OK

    跑应用的时候发现php访问mysql速度很慢,这种情况在以前从未发现过,虽然2台服务器并非在同一网段中,但是ping数值基本上都在1,2ms之间,tcp连接应该不是问题关健,google以后找到答案,在my.ini文件的[mysqld]部分加入:skip-name-resolve,保存文件,重启mysql,一切OK啦,速度象飞一样了

    新版本的mysql配置起来不象以前的那个傻瓜化了,这个问题折腾了我一上午的时间,晚上回来总算是解决了,嘿嘿,又学到一些东西。

    Windows 2003下的MySQL 5服务器,本机连接到MySQL服务非常快,局域网内有两台Linux机器,有一台连接很快,另外一台输入密码后要等好几秒钟才能连上。

    解决办法:

    在MySQL服务器的配置中增加一个如下配置后速度飞快。

[mysqld]
  skip-name-resolve

    附录:( How MySQL uses DNS )

    When a new thread connects to mysqld, mysqld will spawn a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call gethostbyaddr_r() and gethostbyname_r() to resolve the hostname.
    If the operating system doesn't support the above thread-safe calls, the thread will lock a mutex and call gethostbyaddr() and gethostbyname() instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until the first thread is ready.
    You can disable DNS host lookup by starting mysqld with --skip-name-resolve. In this case you can however only use IP names in the MySQL privilege tables.
    If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with --skip-name-resolve or by increasing the HOST_CACHE_SIZE define (default: 128) and recompile mysqld.
    You can disable the hostname cache with --skip-host-cache. You can clear the hostname cache with FLUSH HOSTS or mysqladmin flush-hosts.
    If you don't want to allow connections over TCP/IP, you can do this by starting mysqld with --skip-networking.

    PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MY.INI(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句。

    MYSQL远程连接速度慢的解决方法

    在局域网内连接其他机器的MYSQL,发现速度慢的很,不知道什么原因,总有几秒的延迟.

    后来在网上发现解决方法,my.ini里面添加

  [mysqld]
  skip-name-resolve
  skip-grant-tables

    这样速度就快了!

 skip-name-resolve

    选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

    若使用–skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用 mysqladmin flush-privileges或mysqladmin reload来开启访问控制;默认情况是show databases语句对所有用户开放,如果mysql服务器没有开远程帐户,就在my.ini里面加上skip-grant-tables

通过以上方法成功解决局域网内mysql数据库连接慢,有需要的朋友可以参考下本篇文章。

相关文章

  • Mysql学习心得之插入、更新、删除记录

    Mysql学习心得之插入、更新、删除记录

    在程序开发过程中,离不开数据库,数据库离不开增删改查操作,下面小编把我对mysql学习之插入、更新、删除记录心得总结分享给大家,需要的朋友可以参考下
    2015-08-08
  • MySQL里实现类似SPLIT的分割字符串的函数

    MySQL里实现类似SPLIT的分割字符串的函数

    SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦
    2012-09-09
  • MySQL实时监控工具orztop的使用介绍

    MySQL实时监控工具orztop的使用介绍

    这篇文章主要给大家介绍了MySQL实时监控工具orztop的使用,文中给出了详细的介绍,相信对大家的学习具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • MySQL数据库优化推荐的编译安装参数小结

    MySQL数据库优化推荐的编译安装参数小结

    这篇文章主要介绍了MySQL数据库优化推荐的编译安装参数小结,需要的朋友可以参考下
    2015-04-04
  • Win7 64位 mysql 5.7下载安装常见问题小结

    Win7 64位 mysql 5.7下载安装常见问题小结

    这篇文章主要介绍了Win7 64位 mysql 5.7下载安装常见问题小结,本文图文并茂给大家介绍的非常详细,需要的朋友参考下吧
    2017-06-06
  • vscode安装mysql相关插件的详细步骤

    vscode安装mysql相关插件的详细步骤

    这篇文章主要给大家介绍了关于vscode安装mysql相关插件的详细步骤,这将帮助你更高效地管理数据库操作,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • 关于MySQL中savepoint语句使用时所出现的错误

    关于MySQL中savepoint语句使用时所出现的错误

    这篇文章主要介绍了关于MySQL中savepoint语句使用时所出现的错误,字符串出现e时所产生的问题也被作为MySQL的bug进行过提交,需要的朋友可以参考下
    2015-05-05
  • MySQL 权限控制细节分析

    MySQL 权限控制细节分析

    这篇文章主要介绍了MySQL 权限控制细节分析的相关资料,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-03-03
  • MySQL8.0无法启动3534的解决方法

    MySQL8.0无法启动3534的解决方法

    本文主要是记录一下自己使用MySQL的一次踩坑经历,我的MySQL安装好后,使用一周后的同一时间必定报连接失败,然后查找发现是MySQL本地服务没有启动,下面就详细的介绍一下
    2021-06-06
  • mysql解决时区相关问题

    mysql解决时区相关问题

    这篇文章主要介绍了mysql如何解决时区相关问题,本篇文章将从数据库参数入手,逐步介绍时区相关内容。感兴趣的朋友可以了解下
    2020-08-08

最新评论