【问题标题】:Database server accessed is the client's Database connection访问的数据库服务器是客户端的数据库连接
【发布时间】:2023-04-03 05:38:01
【问题描述】:

我正在尝试设置一个本地服务器进行测试,我计划托管以下内容:

  1. 用于后端应用程序的 Spring-Boot 应用程序(端口:8080)
  2. 用于前端应用程序的 Angular 4 应用程序(端口:4200)
  3. 用于数据库的 MySql 数据库(端口:3306)

当我尝试使用本地服务器进行测试时,一切正常。 当我尝试从另一台 PC 访问服务器时出现此问题。我似乎无法通过我的前端应用从另一台 PC 访问服务器的 MySql 数据库。

问题:

  1. 使用服务器访问:

    localhost:4200/login - able to login (connects to the server's MySql DB)
    
  2. 使用另一台 PC 访问:

    192.168.179.18:4200/login -unable to login (connects to the other PC's MySql DB)
    NOTE: 192.168.179.18 is the server's IP address.
    

似乎当我尝试从另一台 PC 访问前端应用程序时,它正在尝试连接到另一台 PC 的本地 MySql 数据库。

如何配置它,以便无论我在哪里访问服务器,它都会访问服务器的 MySql 数据库??

顺便说一句,我的 application.properties 看起来像这样:

spring.datasource.url=jdbc:mysql://localhost:3306/my_app_database
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=none

【问题讨论】:

  • 你检查数据库权限了吗?
  • @pvpkiran - 是的,我在服务器的 MySql 数据库上的 . 上添加了 GRANT ALL PRIVILEGES
  • 您的数据库配置如何。它在 application.properties 中吗?
  • @pvpkiran - 是的。虽然它在我正在尝试创建的服务器中的 application.properties 中写为“localhost:3306”
  • 你能把那个代码也放上去吗?您能否解释一下“当我尝试从另一台 PC 访问服务器时出现问题”的确切含义

标签: mysql database angular spring-boot


【解决方案1】:

我找到了原因和解决方案。事实证明,在前端应用程序中,它在那里被硬编码以连接到 localhost:8080,所以无论我在哪里访问它,它都会尝试定位 localhost:8080。当我对此进行测试时,我在另一台 PC 上运行后端应用程序(端口 8080),这就是它访问另一台 PC 的 MySql 数据库的原因。

我所做的是将硬编码的 localhost:8080 更改为 192.168.179.18:8080,以便它可以与我服务器上的后端应用程序通信。

【讨论】:

    猜你喜欢
    • 2012-08-12
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多