Home > Database > Mysql Tutorial > MySQL远程连接慢的问题

MySQL远程连接慢的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 17:14:20
Original
1034 people have browsed it

MySQL远程连接慢的问题,当 mysql client 发起连接请求时,MySql Server 会主动去查 client 的主机名。

1,当 mysql client 发起连接请求时,MySql Server 会主动去查 client 的主机名。

2,首先查找Windows系统目录下 /etc/hosts 文件,搜索域名和IP的对应关系。

3,如果hosts文件没有,则查找DNS设置,如果没有设置DNS服务器,,会立刻返回失败;如果设置了DNS服务器,就进行反向解析,直到timeout。

解决办法

第一种方法 修改Hosts

在 MySql Server 所在服务器上,修改 Windows 的 hosts 文件,增加一行记录,如:

100.ZZZ.YYY.XXX dummy.ju690.cn

然后在 100.ZZZ.YYY.XXX 机器上用 Python 发起连接请求,经测试,可以正常连接,说明 MySql Server 这下可以通过 getnameinfo() 解析出100.ZZZ.YYY.XXX 的主机名了。

但这种方法很机械,所以一般采用下面这种方法。

第二种 修改MySql 的配置文件 my.ini

The solution:

Just add skip-name-resolve option to your MySQL configuration file (my.ini).

在 MySql Server 的配置文件 My.ini 中,增加如下两行:

[mysqld]

skip-name-resolve

它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间。

但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求。

可能的后果

如果开启 skip-name-resolve 选项,要确认 MySql 是否采用过主机名的授权,

在 mysql 中运行如下命令:

mysql> select user,host from mysql.user where host 'localhost' ;

一般会得到以“%”授权(也就是任何地址)的记录:

+------------------+-------------+

| user             | host        |

+------------------+-------------+

| root             | %           |

| user_sync | 192.168.0.113 |

如果有host名是什么“DB1”“DB2”的,那么删除授权表中有 hostanme 的记录,然后重启mysqld。

linux

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template