1、服务器防火墙添加3306端口。
-
先看报错窗口。
-
通过百度,最终找到的原因是:远程3306端口未对外开放。
于是下面进行远程3306端口开放操作。
-
首先远程连接服务器,点击“开始”-“管理工具”-“高级安全Windows防火墙”。
-
在打开的窗口中,左边选中“入站规则”,右边点击“新规则”来新建一个入站规则。
-
在“规则类型”中选择“端口”,然后下一步。
-
选中“特定本地端口”,输入3306,然后下一步。
-
选中“允许连接”,然后下一步。
-
这一步默认都选中就行,,然后下一步。
-
最后输入新增的入站规则名称,随便填,自己明白即可。
-
完成后可以在入站规则列表中可以看到新增的入站规则。
-
现在再次在本地连接mysql远程数据库时,发现已经能正常访问了。
问题解决。
2、控制台添加安全组3306端口规则
环境前提:centos7 mysql5.7
1、首先登录位于阿里云上的mysql:
1 |
mysql -u root -h localhost -p |
2、打开mysql数据库 (需要有能操作mysql这个库的权限,一般是mysql的root用户)
1 |
use mysql |
3、这时我们有两种方式来进行修改:
第一种:是直接将原来的 user='root' and host='localhost'
记录的host修改成%或指定的ip
1)将host设置为%表示任何ip都能连接mysql
1 |
update user set host= '%' where user= 'root' and host= 'localhost' ;
|
2) 当然也可以将host指定为某个ip
1 |
update user set host= '106.39.178.131' where user= 'root' and host= 'localhost' ;
|
3) 执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效
1 |
flush privileges; |
第二种: 是新增一条记录方式
1)新增一个用户newname(这个新增的用户名称也可以为root)密码为并将host设置为%表示任何ip都能连接mysql
1 |
grant all on *.* to 'newname' @ '%' identified by 'Navicat_123' ;
|
2)新增一个用户newname,密码为并将host设置为指定的ip 表示 只有该ip能连接mysql
1 |
grant all on *.* to 'newname' @ '106.39.178.131' identified by 'Navicat_123' ;
|
3) 执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效
1 |
flush privileges; |
当然如果想再改成本地的连接,只需要将对应用户的host改成localhost即可,
1 |
update user set host= 'localhost' where user= 'root' and host= '106.39.178.131' ;
|
4、不要现在就去navicat进行连接,还需要做两件事,要不你就到坑里了
1)检查服务器防火墙3306端口开放了吗,没开放需要去开放
2)检查一下阿里云的安全组规则中是否开放了3306端口,
如何检查及配置参考文档:[https://help.aliyun.com/document_detail/25471.html?spm=5176.100241.0.0.IneJPl]
5、现在是时候进行远程连接啦,在工具里输入相应的参数
host: 阿里云服务器的ip
port:3306
user name : 如果是第一种方式的修改,用户就是root,第二种修改就是你自己设置的名字,例如我的就是newname
password: 如果是第一种方式的修改,密码就是root的密码,第二种修改就是你自己设置的密码,例如我的就是Navicat_123
至此,连上去那一刻,有木有很激动啊。