配置skip-name-resolve后,
客户端无法连上mysql原因是由于mysql对连接的客户端进行DNS反向解析。 有2种解决办法: 1,把client的ip写在mysql
服务器的/etc/hosts文件里,随便给个名字就可以了。 2,在 my.cnf 中加入 skip-name-resolve 。 对于第一种方法比较笨,也不实用,那么 skip-name-resolve 选项可以禁用dns解析,但是,这样不能在mysql的授权表中使用主机名了,只能使用IP。 我理解mysql是这样来处理客户端解析过程的, 1,当mysql的client连过来的时候,服务器会主动去查client的域名。 2,首先查找 /etc/hosts 文件,搜索域名和IP的对应关系。 3,
如果hosts文件没有,则查找DNS设置,如果没有设置DNS服务器,会立刻返回失败,就相当于mysql设置了skip-name-resolve参数,如果设置了DNS服务器,就进行反向解析,直到timeout。 注:所谓反向解析是这样的: mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。 如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。 添加skip-name-resolve以后就跳过这个过程了。mysql或sqlserver显示无法连接本地数据库怎么办
首先在本地使用Navicat
for
MySQL建立一个数据库。
在dreamweaver中建立一个PHP格式的网页,方便链接测试。
测试发现,如果无法使用localhost链接mysql数据库就会提示错误信息
如果出现第三步的情况,就需要修改C:\Windows\System32\drivers\etc目录下的hosts文件。
用记事本打开hosts,找到127.0.0.1
localhost这一行,把这一行的“#”删除,保存。
如果没有这一行,就自己手动添加。
评论列表(0条)