在ECS安装MySQL以部署SpringBoot项目

发布于:2023-01-04 ⋅ 阅读:(431) ⋅ 点赞:(0)
  • 后端项目上线不可避免的需要使用数据库。使用RDS是一个不错的选择。但是如果我们只有一两个站点,而且流量不大,使用RDS似乎没有必要。这时候在ECS上安装MySQL就好了。
  • 首先,我们需要理解以下几个概念:
    • ECS可以简单的理解为一台电脑,我们把项目放在上面运行,永远不会关机。这样其他人就可以随时随地的的访问我们的项目。
    • 使用RDS,就是在另外一台电脑上安装了数据库,我们通过设置applicatino.properties的JDBC连接,就可以访问RDS的数据库了。
    • 现在,我们要做的是,把数据库和项目运行在同一台电脑上。
  • 请阅读以下所有步骤再操作,因为有很多的注意事项。

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