Access denied?真正让你实现阿里云mysql数据库远程连接

使用Navicat远程连接阿里云ECS上的mysql时报错1045-Access denied for user root@x.x.x.x (using password Yes,提示本地IP没有登录权限,只能通过localhost登录。解决方法在服务器内部登录数据库执行grant all privileges on *.* to 'root'@'%' identified by 'xxxxx' with grant option;命令。阿里云如何实现本地登录?在阿里云的”管理控制台“通过更多按钮点击”连接管理终端”可实现本地连接阿里云上的mysql。

最近想把阿里云博客上的mysql数据库备份到本地,使用xshell等远程连接服务器登录都正常。

但是使用Navicat远程连接mysql时报错如下,大概意思是本地IP没有登录权限,root用户默认只能在localhost(也就是只能在服务器)登录

阿里云access denied

网上查到的解决方法如下:

  1. 在服务器内部登录数据库

  2. 执行grant all privileges on . to ‘root’@’%’ identified by ‘xxxxx’ with grant option;

    意思是给root用户在任何IP都可以登录数据库并操作任何数据库中的任何对象。

    *.* 第一个*是指数据库,*代表所有数据库,第二个*指数据库对象,*代表数据库中所有对象

    ‘root’@’%’ root是指定要授权的数据库用户

    %代表允许登录的IP

    xxxxx是你的数据库密码

  3. 执行 flush privileges; 刷新权限

但是,问题来了!

怎么在服务器内部登录数据库?貌似阿里云都是只能远程访问啊!

后来在阿里云的”管理控制台“仔细看了下,原来”服务器内部登录“藏在这里:

阿里云远程连接

在对应ECS实例上,通过更多按钮点击”连接管理终端”可实现本地连接阿里云上的mysql。