用内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果反向解析不顺畅, 估计就会延迟很多, 给人的感觉是连接速度N慢!)
liunx下环境的配置更改:
一. 两边机器配置的resolve.conf不一样, 把resolve.conf配置成速度比较快的DNS就OK
二. 把mysql配置中的DNS反向解析关掉, 也OK
附一:
两台在同一网段的机器, 连接同一个数据库服务器, 一台的速度是另一台的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
windows环境下配置的更改:
1、在mysql安装目录下的my.ini(windows系统)配置文件中找到[mysqld],在该行的下面添加如下配置
2、重启mysql服务,测试即可
3、原因:mysql在远程连接时先采用域名解析去查找主机,当查找不到时才会采用ip地址去找。加入这个参数就禁止了mysql采用DNS解析的方式,而直接通过ip进行连接
4、如果加入了“skip-name-resolve”配置的话,mysql就不能通过域名解析了。如果应该把mysql数据库中的user表中的host字段改成相应的ip。如“localhost”应该改为“127.0.0.1”
南京服务器托管 | 南京服务器租用 | 南京主机托管 | 南京主机租用 | 南京华昊数据 | www.467.cn |
TEL:400-025-9-467 025-58633651 QQ:23190019