一、问题一描述
- 使用Navicat 连接aliyun的MySQL数据库时,报下图错误
二、解决方案
- 原因:由于连接的是阿里云上面的MySQL数据库,对外没有开放3306端口。阿里云的服务器默认端口是不对外开放的,如果想要供外部访问,需要在安全组中手动添加规则。
- 所以我们需要手动在安全组中添加规则,具体操作步骤如下:
a.登录阿里云服务器并进入控制台
- 点击【云服务器ECS】–>【实例】–>[选择机器所在区域]–>【点击搜索】–>【更多】–>网络和安全组】–>【安全组配置】。
b.进入安全组界面
- 点击【配置规则】打开【安全组规则】。这里有出/入的方向,选择入方向。
c.添加3306端口
- 然后点击【手动添加】将3306端口开放即可。
三、问题二描述
- 使用root用户给用户授予权限,执行下面命令
GRANT ALL PRIVILEGES ON *.* 'mysql_root'@'%' identified by ‘123456' WITH GRANT OPTION;
- 报错信息如下所示
四、解决思路
- 上图错误显示,语法错误并提示与版本有关。我就先查询所用的MySQL版本信息为
8.0.21
,如下所示。mysql --version
因此语法有所区别,以下是正确的写法:
grant all privileges on *.* to ‘mysql_root'@'%' ;
ALTER USER 'mysql_root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
然后再查看一下用户的访问权限变为%说明赋权成功:
本地使用navicat连接MySQL服务器数据库
- ip地址:填写阿里云服务器的IP
- 端口:填写阿里云对外开放的端口
- 用户名:填写赋权的用户
- 点击【连接测试】,会跳出连接成功的弹窗。
五、结束
现在就可以使用本地软件连接使用正常的访问阿里云的高版本MySQL服务了。