连接MySql速度慢的解决方法(skip-name-resolve)_Mysql

最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。
解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。

原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

附: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 lookup 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.

或者host中添加

192.168.1.21 N-21

时间: 2024-09-15 00:23:46

连接MySql速度慢的解决方法(skip-name-resolve)_Mysql的相关文章

远程连接mysql错误代码1130的解决方法_Mysql

下面给大家介绍远程连接mysql错误代码1130的解决方法:

PHP远程连接MYSQL数据库非常慢的解决方法_php技巧

不知道如何解决,所以把他空间所在的服务器上也装了个MYSQL,才解决问题,今天又有个这个问题,不能也在这服务器上装一个MYSQL吧,Search: PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在my.ini(WINDOWS系统下)或MY.CNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句,保存. 开始-->运行-->

Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法_php技巧

对比下面两个脚本的速度: Windows 7 用 localhost 连接本地 MySQL,速度会很慢. Windows 7 用 127.0.0.1 连接本地 MySQL,速度则是正常的. my.ini里配置了 bind-address=127.0.0.1  用localhost连接本地MySQL: 速度慢 <?php $start = microtime(true); $mysqli = new mysqli('127.0.0.1', 'root', '', 'mysql'); //连接耗时仅

PHP中使用localhost连接Mysql不成功的解决方法_php技巧

发现问题 昨天在帮同事编译安装Linux环境时,遇到一个问题: WEB服务器是apache,数据库是MySQL. 于是写了一个测试连接数据库的PHP页面: 复制代码 代码如下: $mysql = mysql_connect('localhost','root',''); 打开 http://localhost/test.php 测试 提示:Can't connect to local MySQL server through socket... 检查环境正常 以为是数据库没有启动,于是查看一下进

java连接mysql数据库乱码的解决方法_java

解决方法一: mysql安装时候的编码, 看下my.ini,有无 复制代码 代码如下: [mysql] default-character-set=utf8 [client] default-character-set=utf8 [mysqld] default-character-set=utf8创建表的时候设置: DROP TABLE IF EXISTS `Company`; CREATE TABLE IF NOT EXISTS `Company` ( `Cname` VARCHAR(10)

php无法连接mysql数据库的正确解决方法_php实例

即使连接Mysql的语句正确,php也无法连接mysql数据库,出现如下图所示的结果: 首先是在Apache服务器的conf/httpd.conf下的任意位置都没有:PHPIniDir "php压缩目录"这一项. 如"C:/php-5.4.43-Win32-VC9-x86是php的压缩目录,应该有PHPIniDir "C:/php-5.4.43-Win32-VC9-x86" 之后,需要把php压缩目录,与php压缩目录/ext添加到环境变量Path值中.

php无法连接mysql数据库的正确解决方法

即使连接Mysql的语句正确,php也无法连接mysql数据库,出现如下图所示的结果: 首先是在Apache服务器的conf/httpd.conf下的任意位置都没有:PHPIniDir "php压缩目录"这一项. 如"C:/php-5.4.43-Win32-VC9-x86是php的压缩目录,应该有PHPIniDir "C:/php-5.4.43-Win32-VC9-x86" 之后,需要把php压缩目录,与php压缩目录/ext添加到环境变量Path值中.

PHP连接MySQL数据库中文乱码解决方法

解决办法 页面是是gb2312  代码如下 复制代码 mysql_qurey指定数据库的解码为"set names gb2312"是防止中文乱码的. 页面编码为uft8  代码如下 复制代码 mysql_query('SET NAMES utf8');//根据php文件编码设置链接编码 例  代码如下 复制代码 $connection=mysql_connect ($localhost, $username, $password); mysql_query('SET NAMES utf

电脑提示Windows无法连接到无线网络的解决方法

电脑提示Windows无法连接到无线网络的解决方法  方法一.删除保存的WiFi记录重新连接 如果只是修改了无线密码,而没有修改无线名称,那么可以先删除电脑保存的WiFi记录,在重新搜索WiFi信号,点击连接,输入新的无线密码就可以成功连接了; 方法二.修改无线名称和密码 打开无线路由器设置,重新设置修改无线信号的名称和密码,再在笔记本上搜索新的无线信号,使用新的密码进行连接; 方法三.关闭路由器"无线MAC地址过滤" 如果路由器设置了"无线MAC地址过滤"功能,那