连接MySql速度慢的解决方法(skip-name-resolve)
最近在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
相关文章
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的实现
mysql中内置函数date_add 和 date_sub能对指定的时间进行增加或减少一个指定的时间间隔,本文主要介绍了MySQLDATE_ADD和DATE_SUB的实现,感兴趣的可以了解一下2024-09-09
MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现
这篇文章主要介绍了MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现,事务A 按照查询条件读取某个范围的记录,其他事务又在该范围内出入了满足条件的新记录,当事务A再次读取数据到时候我们发现多了满足记录的条数2022-07-07
mysql中int、bigint、smallint 和 tinyint的区别详细介绍
最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint;接下来将详细介绍以上三种类型的应用2012-11-11


最新评论