阿里云服务器上布了一个mysql,而后本地想要经过navicat链接,一直链接不上。html
后来索性本地telent阿里云服务器的3306端口,发现连不通,因而想到3306端口并无对外开放。一开始觉得是linux服务器的防火墙,不过查看了服务器的防火墙等等也都没有开。mysql
后来才知道,阿里云的服务器默认端口是不对外开放的,若是想要供外部访问,须要在安全组中手动添加规则。。。。这是个大坑啊linux
首先建立安全组,而后再安全组中添加规则,以下所示,详情能够参考官方文档
https://helpcdn.aliyun.com/document_detail/25471.html?spm=5176.doc25468.2.4.RfJyPUsql
添加规则以后,再用navicat连,报另外一条错误数据库
1045 access denied for user'root'@'localhost' using password yes
猜测是由于我本地使用root用户登陆navicat,而root用户并无开放外部的访问权限,而是只能localhost访问安全
下一步登录mysql数据库,使用命令服务器
果真root用户的访问权限是localhost,并不能从外部进行访问,须要手动赋权测试
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
实测,我本身的到这力就行了,下文未测试。---seasonQui
好了,这下又报错阿里云
Your password does not satisfy the current policy requirements
也就是密码强度不符合,我也是醉了,使用下面的命令能够查看设置的密码强度校验规则
SHOW VARIABLES LIKE 'validate_password%';
果真是有很麻烦的校验,网上有不少去除这个校验的方法,不过都须要修改配置文件而后重启数据库,我的以为有点麻烦,还有一种临时办法能够去除密码强度校验(不过下次登陆又得用一遍,好处是不须要重启)
set global validate_password_policy=0;
好了,再输入上面的对root用户赋权的命令,大功告成
OK,到这里,服务器的3306端口也对外开放了,root用户也能够从外部进行访问了,navicat链接成功
原文出处:
http://blog.csdn.net/antony9118/article/details/77835715