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
分享到:
相关推荐
解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。 原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。 附:How MySQL uses DNS When a ...
3. **解决远程连接慢的方法:skip-name-resolve**: 为了解决这个问题,可以在MySQL配置文件(通常为`my.ini`或`my.cnf`)的`[mysqld]`部分添加`skip-name-resolve`选项。这将禁用DNS查询,从而加快连接速度。然而...
这将禁止MySQL进行反向DNS查找,从而加快连接速度,尤其是对于远程连接来说效果显著。 在描述中提到的案例中,用户在不同环境(如设备和Linux虚拟机)下尝试连接MySQL服务,发现在设备上连接速度显著较慢。通过 ...
当我们启动MySQL服务时不使用`SKIP-NAME-RESOLVE`,系统会尝试对每个连接的IP地址进行DNS反向解析,这可能会显著降低连接速度,尤其是在高并发或网络延迟较大的环境中。 当发现大量进程在`SHOW PROCESSLIST`中显示...
其中`skip-name-resolve`禁用DNS反向解析,这可以提高性能;而`skip-grant-tables`则是在启动时暂时禁用权限表,以便于修改用户权限等操作。 ##### 2. 查看当前运行状态 可以使用`mysqladmin`工具查看MySQL服务的...
`skip-name-resolve`参数是MySQL的一项配置,用于控制是否进行反向DNS解析。当设置为`ON`或存在此配置时,MySQL将不会尝试将客户端IP地址转换为相应的主机名。启用此选项可以提高数据库的性能,特别是在DNS解析较慢...
出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在my.ini(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句,保存。 开始--》运行--》cmd--》net stop...
1. **反向DNS解析:** 使用`--secure`时,mysqld会对每个连接尝试执行反向DNS解析,确保客户端报告的主机名与实际IP地址相匹配。这有助于防止中间人攻击或DNS欺骗。 2. **增强的安全检查:** 除了基本的反向DNS解析...
- `skip-name-resolve`禁用DNS反向解析,提升连接速度。 - `back_log`定义短时间内等待连接的请求数量。 - `max_connections`设置最大并发连接数。 - `sort_buffer_size`每个连接的排序缓冲大小,应适中设置。 ...
您可能感兴趣的文章:C#访问SqlServer设置链接超时的方法SQL查询超时的设置方法(关于timeout的处理)Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)PHP访问MySQL查询超时处理的方法SQL语句执行
1. `skip-name-resolve`: 这个选项阻止MySQL服务器在连接建立时执行主机名到IP地址的解析,从而提高连接速度。 另外,还有一个提及的`skip-grant-tables`选项,但这通常仅在紧急情况下或进行数据库维护时使用,因为...
连接参数如`skip-name-resolve`禁用DNS反向查询以加快连接速度,`back_log`定义了在MySQL暂停新请求之前的堆积请求数量,`max_connections`限制了并发连接的最大数目。`sort_buffer_size`、`max_allowed_packet`和`...
#禁止MySql Server 对外部连接进行DNS 解析 skip-name-resolve # table_cache 参数设置表高速缓存的数目 open_files_limit = 10240 table_cache = 512 #允许最大连接数 max_connections = 1000 #可以允许多少个错误...
3. **配置数据库**:复制示例配置文件到`/etc/my.cnf`中,并根据实际需求调整参数,比如禁用外部锁定(`skip-external-locking`)、禁用DNS解析(`skip-name-resolve`)、表缓存(`table_cache`)、最大连接数(`max_...
4. 复制配置文件`my-innodb-heavy-4G.cnf`到`/etc/my.cnf`,并根据系统需求进行优化,例如设置`skip-name-resolve`以禁止DNS解析,调整连接参数、缓存大小等。 5. 创建MySQL用户和用户组,以保证服务运行的安全性。 ...
例如,`skip-name-resolve`禁止DNS解析以减少延迟,`table_cache`控制打开的表数量,`max_connections`设置最大并发连接数,`thread_concurrency`设定线程并发数,以及`key_buffer_size`、`tmp_table_size`和`max_...
- `skip_name_resolve`:禁用DNS反向解析,以减少查询时间。 通过对上述各项进行细致的优化,可以显著提升Java应用中的数据库查询性能。需要注意的是,优化是一个持续的过程,需要不断地监控和调整以适应不断变化...