其实这个问题对于熟手来说根本就不是什么问题,远程连接不上mysql 只需要下面123就可以搞定了:
1. 首先要排查网络问题和防火墙的问题
这个是必须的, 你要是连mysql的服务器都连不上, 那还访问什么? 怎么检查呢? ping一下:ping 192.168.0.11。ping 的通的话, 再去检查一下 3306端口是不是被防火墙给挡掉了:ping 192.168.0.11:3306,或者干脆把防火墙关掉,service iptables stop (Redhat ) 或 ufw disable(ubuntu) 。这一步没问题的话, 开始下一步。
2. 要排查有没有访问权限
说到访问权限, mysql分配用户的时候会指定一个host,比如我的 host 指定为 192.168.0.5 ,那么这个账号就只能 .5 这一台机器访问, 其他的机器用这个账号访问会提示没有权限。 host 指定为 % 则表示允许所有的机器访问。一般来说出于安全方面的考虑,遵循最小权限原则, 权限的问题就不多讲了, 不会的自己查手册。 确定了权限没问题的话进行下一步。
3. 要排查MySQL的配置
检查mysql的配置文件, Linux下mysql的配置文件叫 my.cnf;windows下的叫 my.ini,检查这个配置项:–bind-address=IP
引用手册里的一段话:
The IP address to bind to. Only one address can be selected. If this option is specified multiple times, the last address given is used. If no address or 0.0.0.0 is specified, the server listens on all interfaces.
绑定的IP, 只能绑定一个IP, 如果绑定多个IP, 则以最后一个绑定的为准。如果没有绑定或绑定 0.0.0.0, 服务器监听所有的客户端。
绑定的IP, 只能绑定一个IP, 如果绑定多个IP, 则以最后一个绑定的为准。如果没有绑定或绑定 0.0.0.0, 服务器监听所有的客户端。