首页 数据库 mysql教程 如何解决局域网内mysql数据库连接慢_MySQL

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

May 30, 2016 pm 05:10 PM

通过内网连另外一台机器的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数据库连接慢,有需要的朋友可以参考下本篇文章。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

mysql无法打开共享库怎么解决 mysql无法打开共享库怎么解决 Mar 04, 2025 pm 04:01 PM

本文介绍了MySQL的“无法打开共享库”错误。 该问题源于MySQL无法找到必要的共享库(.SO/.DLL文件)。解决方案涉及通过系统软件包M验证库安装

减少在Docker中使用MySQL内存的使用 减少在Docker中使用MySQL内存的使用 Mar 04, 2025 pm 03:52 PM

本文探讨了Docker中的优化MySQL内存使用量。 它讨论了监视技术(Docker统计,性能架构,外部工具)和配置策略。 其中包括Docker内存限制,交换和cgroups

如何使用Alter Table语句在MySQL中更改表? 如何使用Alter Table语句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器) 在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

本文比较使用/不使用PhpMyAdmin的Podman容器直接在Linux上安装MySQL。 它详细介绍了每种方法的安装步骤,强调了Podman在孤立,可移植性和可重复性方面的优势,还

什么是 SQLite?全面概述 什么是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

本文提供了SQLite的全面概述,SQLite是一个独立的,无服务器的关系数据库。 它详细介绍了SQLite的优势(简单,可移植性,易用性)和缺点(并发限制,可伸缩性挑战)。 c

如何为MySQL连接配置SSL/TLS加密? 如何为MySQL连接配置SSL/TLS加密? Mar 18, 2025 pm 12:01 PM

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

在MacOS上运行多个MySQL版本:逐步指南 在MacOS上运行多个MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

本指南展示了使用自制在MacOS上安装和管理多个MySQL版本。 它强调使用自制装置隔离安装,以防止冲突。 本文详细详细介绍了安装,起始/停止服务和最佳PRA

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么? Mar 21, 2025 pm 06:28 PM

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

See all articles