环境:本地windows 10, 远程Ubuntu16.4+Mysql5.7
在win10上远程连接mysql连接不上,首先远端登陆mysql:
mysql> show databases;
mysql> select user, host,password from mysql.user;
这两步排除数据库名和用户错误,在host部分发现登陆地址限制在了本地
于是创建一个账户用于远程登陆,并赋予权限:
mysql> create user 'your_username'@'%' identified by 'your_password';
mysql> grant all privileges on *.* to your_username @"%";
mysql> flush privileges;
其中@"%"意思是不限制登陆地址,flush privileges是刷新权限。
然后在win10上再次登陆,结果还是登陆不上,最后定位在mysql的配置文件上。配置文件位置和名称根据具体情况可能会不一样,不过一般是在mysql安装目录,my.cnf。比如我这里是
又定位到了另外两个目录,然后经过排查才找到配置文件。这里可能有其他更方便的方法,感谢留言。
然后修改配置文件中的一行:
bind-address = 127.0.0.1
这里意思是绑定本地ip,所以就算前面创建了远程连接账户也没有效果。把这行注释掉或者删掉都行。然后
$ sudo systemctl restart mysql
重启mysql,win10端用任意工具远程连接即可。