springboot项目部署在linux的tomcat上后操作数据库报错

又出问题了,项目在本地运行正常,可以访问服务器的数据库,但是数据库报错。

img

img

img

img

服务器的数据库是不是安装在了Linux系统上,linux系统上数据库默认是有大小写区分的,可修改一下数据库的配置文件设置成不区分大小写的。

我看你的配置文件,数据库是在121.5.72.99服务器上,你的springboot项目部署不是在本地吗?为什么你的http请求也发往数据库服务器了?是我理解错项目的部署情况了还是你写错了

img

首先,这不是操作数据库报错,而是浏览器访问8099端口被拒绝;
解决此问题从以下点出发:
1、检查8099相应服务有没有启动
2、在8099服务启动的情况下有没有防火墙等安全策略限制
3、以上两点都没问题的情况下,通过配置解决跨域问题或用nginx转发解决跨域问题

一般是访问的端口号或者ip地址有问题;
是不是涉及到了跨域问题?
是的话,通过配置解决跨域问题或用nginx转发解决跨域问题

如果数据库是放在服务器上的,
先ping下 ip,通了的话,确保用户名密码 没有问题,然后 开放服务器对应的3306端口,如果用的云服务器 要配置出站 端口

从前端错误提示来看,出现net::ERR_CONNECTION_RESET 错误的原因很多,加host应该是一种原因的解决方案。
注意检查一下你的服务器ip是否正常可以访问,接口端口是正确,服务运行是否正常

线上配置nginx跳转

连接拒绝,给个报错信息啊

加上这个类试试


import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig   implements WebMvcConfigurer {

        /**
     * 跨域过滤
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
        .allowedOrigins("*")
        .allowedHeaders("Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept,Authorization")
        .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
        .maxAge(3600)
        .allowCredentials(true);
    }



}

如果服务器是阿里云的话,请查看控制台是否开放了安全组端口

第一张图就可以看出是跨域的问题,加上处理跨域的代码就可以了,不是什么数据库连不上

jdbc连接配置是不是有问题,根据自己mysql版本看看配置

主要就是看下是否跨域,以及这台服务器中的你使用的相关端口这些是否被禁用
你这个看起来就像是请求被拒绝了

网络错误,访问被拒绝。
出错的链接:121.5.72.99:8099/users/user/findAll:1
Ping一下网络

1.重启服务器

2.修改相关文件覆盖老文件

3.修改相关文件名(可能和系统有点关系)

1、在本地检查下数据库以及用户名密码是否可以直接连接成功
2、检查下端口号是否被占用

这是后端的问题,部署tomcat后的错误日志发出来帮你分析原因。

页面截个跨域的错误,问题又是说 数据库报错 ,又不给报错信息

你应该把mysql的错误信息发出来,mysql报错一般都是表结构变化、引擎、大小写的原因

将如图所示的useSSL=true改为useSSL=false

img

很明显,你跨域了,需要解决跨域的问题。
服务器可以通过nginx转发。不要在代码里面写死地址。

先了解一下什么叫同源策略,然后你就自己能解决了,想简单粗暴,前端代理,想专业点上nginx

最好将报错详细信息发出来一下;你这让很广泛(如博友们说的一样)
另外博主好勇气(居然把远程数据库账号密码发过来了!!!)

请问你是idea控制台报错嘛?
1、create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/xxxx, errorCode x, state xxxxx
2、java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)

望采纳哦谢谢啦

findALL方法里调用的接口是啥?你可以debug下接口,看返回状态码是啥,返回啥?

看一下后端控制台打印信息。排查一下是否后端问题