Enr*_* GF 1 java mysql amazon-web-services spring-boot
开发人员大家好,我在这个 Angular+MySQL+Spring-Boot 应用程序中工作,我正处于将数据库导出到 AWS 的阶段,但出于某种原因,在测试了与 mySQL Workbench 的数据库连接后,当我设置application.properties中的参数出现错误 java.sql.SQLException: No database selected。
AWS 抛出的端点以及端口是:
endpoint: bookingrestaurantok.clnhc7kmwszz.us-west-2.rds.amazonaws.com
port: 3306
Run Code Online (Sandbox Code Playgroud)
因此在我的 app.properties 上使用这个元素我只是初始化
spring.datasource.url=jdbc:mysql://bookingrestaurantok.clnhc7kmwszz.us-west-2.rds.amazonaws.com
:3306/restaurant_booking_ok?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=ssssssssssss
spring.datasource.password=sssssssssssssss
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
logging.level.org.hibernate.SQL=debug
Run Code Online (Sandbox Code Playgroud)
我在这里公开工作台数据库及其端点
但每当我尝试到达应用程序中的任何端点时,都会显示“未选择数据库”的错误 500。你能帮我看看我省略了什么步骤吗
我知道有很多代码,但我还附上了我的 pom,以防万一您发现那里有问题
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>cubancoder</groupId>
<artifactId>restaurant-booking</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>restaurant-booking</name>
<description>Demo project for Spring Boot made on maven front end angular</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.modelmapper/modelmapper -->
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail
dependencia para el envio de emails -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mockito/mockito-core -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.4.6</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.stripe/stripe-java dependencia para el wireling de pagos
y demas-->
<dependency>
<groupId>com.stripe</groupId>
<artifactId>stripe-java</artifactId>
<version>19.45.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助
该错误java.sql.SQLException: No database selected似乎涉及数据库名称。
数据库名称在 property 中设置正确spring.datasource.url,但是对于 Amazon RDS,将该属性指向终端节点就足够了(无需数据库名称)。请尝试以下操作:
spring.datasource.url=jdbc:mysql://bookingrestaurantok.clnhc7kmwszz.us-west-2.rds.amazonaws.com
:3306
Run Code Online (Sandbox Code Playgroud)
我能够重现该错误。问题在于,Amazon RDS 默认情况下会创建一个新的数据库实例,但不会创建数据库。要创建数据库,需要设置以下选项:
此外,该错误不会在连接到数据库后出现,而是仅在第一次查询(例如创建新表)之后出现。
将“初始数据库名称”设置为mydb并具有数据库实例 id database-instance-1,则 URL 将为:
spring.datasource.url=jdbc:mysql://database-instance-1.blablabla.rds.amazonaws.com:3306/mydb
Run Code Online (Sandbox Code Playgroud)
我知道您spring.datasource.url看起来是正确的,并且您可以在 Workbench 中看到您的数据库,但我建议您使用 Amazon RDS 仪表板创建一个新的数据库实例并按照上面的说明设置数据库名称。
这不是一个明确的答案,但我希望这个初步答案能让您找出问题的原因。
| 归档时间: |
|
| 查看次数: |
679 次 |
| 最近记录: |