【RPi系列】SSM项目通过3306端口远程连接阿里云ECS数据库

200 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第35天,点击查看活动详情.


一、简介

  因项目需要,所以要远程连接位于阿里云ECS服务器中的mysql数据库,由于缺乏经验,再加上之前通过Navicat使用SSH也成功连接上了数据库造成了一些误解,所以走了不少错路,故记录之。

二、环境介绍

  • 操作系统:CentOS8
  • 数据库:mysql-8.0.21
  • 云服务器:阿里云ECS 2核 4 GiB
  • 远程连接数据库:Navicat、IntelliJ IDEA x64

三、远程连接

1、基础环境准备

   在centos8中安装Mysql,从安全组中开放3306端口,入方向和出方向都需要,最后打开防火墙,开放3306端口。(防火墙是必须要开启的,不然就连接不上,关键是不开防火墙可以通过ssh,从22端口也能连接,这也是最坑的一点)

①、mysql远程权限开启: 在这里插入图片描述

②、安全组开放3306端口: 在这里插入图片描述 在这里插入图片描述 ③、防火墙开启: 在这里插入图片描述

2、Navicat测试

连接成功!

四、遇到的问题

1、### Error updating database. Cause: java.sql.SQLSyntaxErrorException: Table 'centosdb.Users' doesn't exist

在这里插入图片描述 【问题原因】:

  Linux系统上安装的mysql数据库默认是区分大小写导致

【一般的解决方案】:

  改动mysql的配置文件,在my.cnf中的[mysqld]下面(位置不能错)加上lower_case_table_name=1这句(1表示不区分大小写,0区分大小写),保存重新启动mysql

【CentOS8的解决方案】:

  我愿称之为最坑!一旦MySQL启动后,将无法再进行配置,只能进行重装。

2、Failed to start mysql.service: Unit mysql.service is masked.

在这里插入图片描述 【问题原因】:

  该问题原因就是Mysql启动后,配置了my.cnf造成的,你将无法停止、重启mysql服务,只能进行重装。

3、The dirver has not received any packets from the server

【问题原因】:

  这个原因应该是没打开防火墙造成的,什么都对,但是就是走不通。