The skip-name-resolve of mysql solves the problem that the external network connection client is too slow

The mysql built on Tencent Cloud is always very slow when accessed using navicat on the developed computer. It turns out that Mysql will perform domain name resolution on the requested address. The developed computer does not have a domain name, so it will be particularly slow. Use the following resolve

[mysqld]
skip-name-resolve
skip-grant-tables

official explanation

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.

According to the documentation, if your mysql host is slow to query DNS or there are many client hosts, the connection will be very slow. Since our development machine cannot connect to the external network, DNS resolution cannot be completed, so Also understand why the connection is so slow. At the same time, please note that after adding this configuration parameter, the host field in the authorization table of mysql cannot use the domain name but only the ip address, because this is the result of prohibiting domain name resolution.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326064385&siteId=291194637