一、前言
在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7。那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库操作呢?本篇博客记录一下自己在连接过程中遇到的坑。感谢@爱做梦的鱼与@Weleness两位大佬的指导。
二、查看数据库是否启动
首先要看一下数据库是否成功启动,如果没有启动肯定是不能连接的。使用以下命令查看我们云服务器端的数据库是否成功启动:
service mysqld status
如果成功启动说明我们的数据库是启动的,可以进行下一步。
三、对外开放3306端口
这个时候如果我们直接在本地 Navicat for MySQL 中直接连接时不能连接的,如果直接连接会报如下错误:
因为阿里云的服务器默认端口是不对外开放的,如果想要供外部访问,需要在安全组中手动添加规则
。所以我们需要手动在安全组中添加规则,具体操作步骤如下:
1.登录阿里云服务器并进入控制台,点击【云服务器ECS】
。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.在【云服务器ECS】
点击【实例】
并跳转到实例列表。在实例列表找到要开放端口的云服务器实例。并点击后面的【更多】
–>【网络和安全组】
–>【安全组配置】
。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.在【本实例安全组】
内点击【配置规则】
打开【安全组规则】
。这里有出/入的方向,选择入方向
。然后点击【手动添加】
将3306端口开放即可。
注意:这里的优先级可选范围为1-100,默认值为1,即最高优先级。描述可以随便写,写不写都可以。
四、设置数据库用户访问权限 参考:https://www.pianshen.com/article/4400192327/
将云服务器的3306端口开放之后还是不可以在本地进行连接,因为用户的访问权限默认是localhost
,并不能从外部进行访问,需要手动赋权。
我们可以使用如下命令查看数据库中各个用户的访问权限:
select user,host from mysql.user;
使用如下命令将所需要开放的用户的访问权限改为任意:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '*********' WITH GRANT OPTION;
注意:这里的密码需要最短为8位,而且最好同时有大写字母、小写字母、数字、特殊符号
否则可能通不过密码强度校验而报错。也可以使用set global validate_password_policy=0;
命令临时去掉密码强度校验。
然后再查看一下用户的访问权限变为%说明赋权成功:
五、本地连接服务器数据库
完成上面三个步骤然后就可以正常在本地电脑上连接云服务器上的数据库了。然后就可以在Navicat for MySQL中操作云服务器上的数据库啦。