开启掘金成长之旅!这是我参与「掘金日新计划 · 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
【问题原因】:
这个原因应该是没打开防火墙造成的,什么都对,但是就是走不通。