关于mysql远程连接

windows环境下简单,这里讲linux环境下的

首先,linux系统有一道防火墙

我用的是ubutun16.04LTS

要用ufw工具(命令)开启3306端口(ufw allow )

(如果安装的时候改变了端口那就开启那个端口,虽好不要所有端口都打开,linux不像windows,因为自由度更高,所以安全相对更低)

这就过了第一道墙

然后是mysql内部

(其实个人觉得数据库的对外访问权限没有必要开启,因为数据库里 大多是很重要的东西,开放端口等于给豺狼留了门,不开放端口,然后通过服务器中转,最后内部访问就行)

内部默认情况是所有账户的访问权限都是localhost(可以通过指令“select user,host from mysql.user;”来查看用户列表)

这个时候要利用update指令更改:update mysql.user set host ="%" where user ="root";

(此处%的意思是通配符,就是所有主机只要有账号密码都可以访问)

改了之后理论上就可以连接了

但是实际操作上(远程连接器用的SQLyog)SQLyog会报错(具体错误代码不记得了/捂脸)

需要进行以下操作:

alter user 'root'@'%' identified by 'password' password expire never;#修改加密规则(说实话没看懂这一句/捂脸,但确实有效,我还是要去补下sql的基础)

alter user 'root'@'%' identified with mysql_native_password by 'password';#更新一下用户的密码

flush privileges;#刷新权限

重置密码:alter user 'root'@'%' identified by '#你要重置的新密码#'

这样就可以连接成功了

(有些内容是从其它博客学习过来的,侵删)

猜你喜欢

转载自www.cnblogs.com/lavender-pansy/p/9974534.html