【技术贴】是因为没有开MySQL的端口是什么?

未能联接到MySQL数据库省流版:

服务器没有开MySQL的端口。

之所以还要写一篇文章,是由于开端口只须要一分钟,而按照各类现象与线索推论出没有开端口则须要三个小时。

问题背景

在服务器上安装了Linux虚拟机,之后在虚拟机上安装MySQL。

之前仍然都是用xshell操纵MySQL,明天想使用Navicat联接。

my数据库

MySQL的数据库如下:

图片[1]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

共两个数据库,一个myDB1,一个university数据库(其余为MySQL自带的数据库)

此时我MySQL上面的用户如图:

图片[2]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

可以看见上面有三个用户,root,peng和user_for_db1。其中user_for_db1是之前构建的,按照名子可知,为user_for_db1赋于了myDB1数据库的所有权限,同时为peng用户赋于所有数据库的所有访问权限。

问题

在Navicat中,构建了两个联接,如图:

联接1:

图片[3]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

图片[4]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

可以看见联接成功,但是因为设置了访问权限easyphp连接数据库,所以只有myDB1一个数据库。这个联接是许久之前构建的,当时忘掉如何联接的了(果然还是要养成记录的好习惯)。

并且当用另一个用户联接的时侯,却提醒联接出错,如图:

图片[5]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

图片[6]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

另外也不是SSH联接的错误,由于都不行,这儿只是没放截图。

讨教大鳄

在向大鳄讨教过程中,并没有直接问为何连不上,由于好多背景会造成共同的问题,上来直接问常常讲不清背景。我先是注意到在XShell中,联接的端口是22,合同是SSH,而Navicat中的端口是3306,因而就先问了一下这两个端口的不同。

大鳄回答如下:

22这个端口,是用SSH连接服务器的默认端口;
3306这个端口,是MySQL的默认端口。

当时还并没有非常清楚,大鳄又来了一句:

3306可以改的
开启MySQL时候换个端口就行

听了这句话以后,我也排除了端口冲突的问题,由于这两个联接并没有同时打开。

然后向大鳄讲了一下背景,也就是上文的内容,大鳄听完后,也是不太清楚。。。。

峰回路转

虽然一开始就觉得这个问题有点奇怪,所以并没有很沮丧,不过看着大鳄跟我说的那句:3306可以改的,我深陷了思索。

MySQL如何晓得你把端口改了呢?

忽然又想到最初设置服务器的时侯,在安全组上面设置过一些端口

于是问了一下大鳄要不要在服务器上添加准许这个新端口

果不其然,须要在服务器上设置。

之后,就想着在服务器上添加一个新端口,尝试用新端口联接。

之后惊讶地发觉,我没有给MySQL开端口!!

图片[7]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

发觉这点后,我并没有立即开放端口,而是开始思考easyphp连接数据库,我之前如何登陆的呢?

看着被容许的几个端口,尤其是22哪个端口,事情渐渐明朗了上去

我开了22的端口,而xshell也是用22联接的,也就是说,我用xshell联接,相当于是远程桌面。

我是先通过22端口,联接到远程桌面,也就相当于登陆到服务器这个计算机,之后在步入到mysql,这时的MySQL就相当于是远程计算机的本地应用了,所以不须要3306这个端口。

而且我一开始如何联接成功的呢?

就是这个

图片[8]-【技术贴】是因为没有开MySQL的端口是什么?-唐朝资源网

说实话想了很久也没想清楚,目前的推测是,在上图的安全组中(图7),有三个外网IP,有可能服务器觉得我这个联接属于外网联接,所以可以通过(只是猜测,具体缘由不清楚)。

扫尾

开放端口后,确实联接成功了,而且发觉没有任何数据库信息,于是通过网上查阅资料,晓得是须要如下操作,简单记录一下:

右键——编辑联接——数据库——选择对应的数据库(可能须要勾选使用自定义数据库列表)

总结添加一个端口只须要一分钟,但晓得为何添加,却须要三个小时。

© 版权声明
THE END
喜欢就支持一下吧
点赞94赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容