前言

无论是本地还是服务器,安装的MySQL都不支持远程连接,因此需要一些手段来使MySQL支持远程连接。

本次使用的工具:

  • Xshell

Xshell

  • Navicat 高级版

Navicat

环境前提:

  • centos7

  • my

注意一点:当我们修改完MySQL权限相关的操作后一定要刷新权限表,使配置生效,执行

flush privileges (主要)

实现步骤

1、首先在Xshell中,连接服务器,并登录位于阿里云上的MySQL:

mysql -u root -h localhost -p

2、打开mysql数据库 (需要有能操作MySQL这个库的权限,一般是mysql的root用户)

use mysql

3、这时我们有两种方式来进行修改:

第一种:是直接将原来的 user='root' and host='localhost'记录的host修改成%或指定的ip

  • 将host设置为%表示任何ip都能连接mysql

update user set host='%' where user='root' and host='localhost'

  • 当然也可以将host指定为某个ip

update user set host='xxx.xx.xxx.xx' where user='root' and host='localhost'

  • 执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效

flush privileges

第二种: 是新增一条记录方式

  • 新增一个用户temp(这个新增的用户名称也可以为root)密码为并将host设置为%表示任何ip都能连接MySQL

grant all on . to 'temp'@'%' identified by 'temp123'

  • 新增一个用户newname,密码为并将host设置为指定的ip 表示 只有该ip能连接MySQL

grant all on . to 'temp'@'xxx.xxx.xxx.xxx' identified by 'temp123'

  • 执行完以上语句,接着执行以下语句 ,刷新权限表,使配置生效

flush privileges

当然如果想再改成本地的连接,只需要将对应用户的host改成localhost即可

update user set host='localhost' where user='root' and host='xxx.xxx.xxx.xxx'

4、不要现在就去navicat进行连接,还需要做另外两件事,要不你就到坑里了

1)检查服务器防火墙3306端口开放了吗,没开放需要去开放
2)检查一下阿里云的安全组规则中是否开放了3306端口,

核实,已对公网开放3306端口,OK,没有开放请按照提示,添加一条规则,放通3306。

5、现在是时候进行远程连接啦,在工具里输入相应的参数

HOST: 阿里云服务器的ip

PORT: 3306

USERNAME: 如果是第一种方式的修改,用户就是root,第二种修改就是你自己设置的名字,例如我的就是temp

PASSWORD: 如果是第一种方式的修改,密码就是root的密码,第二种修改就是你自己设置的密码,例如我的就是temp123

6、成功

至此,已经可以连接。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。(PS:局域网访问也是类似的修改)

喜欢本文可以收藏,或者点个关注,每天都是新鲜技术分享

相关推荐