[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
When a new client connects to mysqld
, mysqld
spawns a
new thread to handle the request. This thread first checks if the
hostname is in the hostname cache. If not, the thread attempts to resolve the
hostname:
gethostbyaddr_r()
and
gethostbyname_r()
calls, the thread uses them to perform hostname
resolution.
gethostbyaddr()
and
gethostbyname()
instead. Note that in this case no other thread
can resolve hostnames that are not in the hostname cache until the
first thread unlocks the mutex.
You can disable DNS hostname lookups by starting mysqld
with the
--skip-name-resolve
option. However, in this case you can use only IP
numbers in the MySQL grant tables.
If you have a very slow DNS and many hosts, you can get more performance by
either disabling DNS lookups with --skip-name-resolve
or by
increasing the HOST_CACHE_SIZE
define (default value: 128) and
recompiling mysqld
.
You can disable the hostname cache by starting the server with the
--skip-host-cache
option. To clear the hostname cache, issue a
FLUSH HOSTS
statement or execute the mysqladmin flush-hosts
command.
If you want to disallow TCP/IP connections entirely, start mysqld
with
the --skip-networking
option.