在ECS安装MySQL以部署SpringBoot项目
后端项目上线不可避免的需要使用数据库。使用RDS是一个不错的选择。但是如果我们只有一两个站点,而且流量不大,使用RDS似乎没有必要。这时候在ECS上安装MySQL就好了。
首先,我们需要理解以下几个概念:
ECS可以简单的理解为一台电脑,我们把项目放在上面运行,永远不会关机。这样其他人就可以随时随地的的访问我们的项目。
使用RDS,就是在另外一台电脑上安装了数据库,我们通过设置applicatino.properties的JDBC连接,就可以访问RDS的数据库了。
现在,我们要做的是,把数据库和项目运行在同一台电脑上。
请阅读以下所有步骤再操作 ,因为有很多的注意事项。
购买ECS并初始化。此处不过多介绍。
安装MySQL。
阿里云官方提供了非常详尽的安装教程。官方文档 (此处使用的是Alibaba Cloud Linux 2)做完第一步和第二步即可 。第三步是使用阿里云的DMS访问ECS的数据库,和我们无关。
(官方文档的教程安装的是MySQL8.0版本,你可以尝试安装其他版本,如5.7,以规避可能的异常。我没有尝试。)
对于第二部的是否允许root账户远程连接数据库,你可以自行决定。
完成以上操作,此时你已经有了root账户和密码。但是一般不推荐使用root账户操作项目。你可以新建一个账户和密码。参见 官方文档 的步骤三 1和2。
注意:
官方文档的教程安装的是MySQL8.0版本,该版本要求root账户的密码不可以很简单,否则无法通过。数字+字母+特殊符号。
输入密码的时候,控制台不会有任何显示,这是为了安全。输入完成回车即可;
ECS端口设置。打开MySQL数据库的3306端口。SpringBoot的端口(默认是8080)也可以打开。
但是需要打开吗?因为此时MySQL和SpringBoot在同一台机器上。我不确定。反正我在自己的电脑上开发,也要用ECS的MySQL,我就打开了。
使用Navicat连接ECS的数据库,进行建库和增删改查操作。
建立连接的时候需要输入ECS的公网ip,账户,密码。
在上述过程中,可能会报错1251 ,参考报错1251 。这里为什么报错呢?因为MySQL8.0和5.x版本使用了不同的安全机制。如果你用的Navicat版本太旧,是会报错的。解决方法:降级SQL、升级Navicat、或者切换数据库的安全验证插件。如果没有报错就OK。设置数据库的安全验证方法如下:报错1251 。简单的说,就是编辑MySQL的user表,把密码插件从caching_sha2_password切换为mysql_native_password。
在上述过程中,可能报错1396 。这是由于你的账户名错误。跟着阿里官方文档做下来,你的用户名是root@%,而不是root@localhost,参考报错1396 。
在上述过程中,可能报错“Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation”。 这是由于你的账户没有system_user(理解为管理员)权限,赋予账户权限即可,参考报错没有权限 。
在上述过程中,可能报错1045。这是由于你的账户密码输入错误。参考报错1045 。
你也可以不连接Navicat,这样就避免了以上所有错误。
IDEA连接ECS的MySQL。和连接RDS的步骤一样,不再赘述;
设置SpringBoot的application.properties的数据库设置(账户、密码、url)。和连接RDS的步骤一样,不再赘述;
点赞
打赏