admin管理员组文章数量:1618719
数据库连接:
springboot连接远程服务器的步骤,首先要进行配置:
1、在pom文件中添加依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、配置application.propertites
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://your_ip:your_port/your_db_name?useUnicode=true&useSSL=false&serverTimezone=GMT&characterEncoding=UTF-8
spring.datasource.username=你的用户名
spring.datasource.password=这里是你的密码
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
服务端数据库权限:
1、登陆数据库:
首先要进入到mysql>:
mysql -u root -p
若提示Access Denied:…(use PASSWORD:YES/NO)这样的错误,要么就是第一次登录可以不需要输入密码,直接enter即可,然后可以去修改密码。要么就是需要密码登录,但是密码错误或者没有输入。
还有一种情况,可能就是修改user表导致的bug,如遇到这个bug可以这样解决:
步骤如下:注意针对版本不同,密码列为authentication_string或者password
首先,停止服务
systemctl stop mysql
然后进入安全模式
mysqld_safe --skip-grant-tables --skip-networking&
最后mysql进入到mysql即可进行修改密码,别忘记刷新权限表
update user set authentication_string=PASSWORD('你的密码') where user='root';
flush privileges;
2、允许其他ip访问数据库:
输入如下语句:
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY '访问的密码';
可以通过查表得方式查看是否已有权限:
先进入到mysql数据库
use mysql;
查询user表
select host,user from user where user = 'root'
若其中包含host为%,且user为root,则权限修改成功,同时别忘了刷新权限表哦。
服务端端口:
1、保证服务器开启了3306端口:
以腾讯云为例,在防火墙中添加规则,并允许所有人访问即可,添加后应该如下图所示:
正常来说,此时运行springboot项目应该就可以连接到数据库了。但是我就遇到了这样一个问题,项目运行报错,日志如下:
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
//后面报错省略...
2、出现这个问题我也是百思不得其解,后来我尝试在服务器上运行我的项目,发现数据库连接并没有报错。这说明问题一定是出在了防火墙、端口上面。
尝试关闭防火墙:
systemctl stop firewalld.service
发现连接成功…额。明明是开放了3306端口,为啥还是拦截了我的访问呢。
出于安全考虑,先打开防火墙:
systemctl start firewalld.service
查看防火墙状态:
firewall -cmd --state
然后我就发现,确实没有添加上去,端口号并不包含3306。
3、问题解决:
去宝塔页面将端口加在了系统防火墙中,也可以通过其他方式,只要添加进入就行。
原因大概就是这个样子,其实安全组的防火墙和系统防火墙并不等价。但是大多数情况下,安全组里面开放的端口,系统防火墙会一同添加上。若出现这种坑的情况,可以自行添加。
本文标签: 步骤原因服务器数据库SpringBoot
版权声明:本文标题:【springboot】- 连接远程服务器数据库的步骤以及第一次连接就Communications link failure可能的原因 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728785266a1173243.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论