我使用阿里云服务器部署了一个mysql数据库,使用Navicat连接数据库时只有通过SSH才能连接上,不能直接连接,请问下这种情况需要怎么解决?
我使用阿里云服务器部署了一个mysql数据库,使用Navicat连接数据库时只有通过SSH才能连接上,不能直接连接,请问下这种情况需要怎么解决?
1、端口:安全组开启相应端口(另外建议修改下默认3306,改成63329?类似这种比较大的端口号)
2、账号:如 root@# 一定要强密码 如 0cVzvj^P7#2uiRRya7JY1Xf2O$5Q5cpS
这种?
3、地址:以上操作正常的话,用外网IP+端口即可正常连接
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答1.8k 阅读
3 回答2k 阅读
1 回答3.6k 阅读
这是因为navicat先用ssh连接了远程服务器后,navicat再用这个连接去连接的mysql服务器,相当于是你在远程主机上本机连接的mysql,所以可以连接。
默认不允许非本机连接mysql的目的是为了安全。
如果你就是想远程连接,可以检查一下你mysql的

database
为mysql
,其中的user
表内对应账号的host是否为%,%表示允许全部主机连接,如图推荐可以看看这篇文章进行检查设置:https://www.cnblogs.com/linjiqin/p/5270938.html
如果还是不行,可以检查一下阿里云服务器安全组是否允许了3306端口的外网连接。