一篇文章说,可以将ipv6卸载。或者修改注册表。我是修改了注册表。
2. 使用toad连接。提示错误:
估计和安装时,我选择了什么strong的加密方式有关。还得修改加密方式。
需要找到my.ini。可以在mysql的命令窗口,执行“show variables like 'datadir'”,找到my.ini在哪。
然后修改,将default_authentication_plugin=caching_sha2_password,改为default_authentication_plugin=mysql_native_password;重启服务。
——按照以上方法不好使。还是重装了mysql,安装时不选caching_sha2_password就成了。
配置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以后就跳过这个过程了。具体解决法如下:1.排除网络或防火墙问题先看是否能ping通远程服务器,ping192.168.1.211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet192.168.1.2113306,如果连接失败,配置防火墙。2.配置防火墙,开启3306端口vi/etc/sysconfig/iptables-AINPUT-mstate–stateNEW-mtcp-ptcp–dport3306-jACCEPT(允许3306端口通过防火墙)/etc/init.d/iptablesrestart(重启防火墙使配置生效)2.检查MySQL配置3.如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:netstat-apn|grep3360tcp600127.0.0.1:3306:::*LISTEN13524/mysqld注意红色的地方,这说明3306被绑定到了本地。检查一下my.cnf的配置,这里可以配置绑定ip地址。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)