Spring Boot, MySQL, Tomcat не могут создавать исходные соединения пула в Eclipse

Я создал веб-приложение, используя Spring Boot и REST API в Eclipse. Когда я пытаюсь запустить его с помощью Tomcat 8, он выдает ошибку «o.a.tomcat.jdbc.pool.ConnectionPool: невозможно создать начальные подключения пула».

Я пытался использовать предоставленные решения, но, похоже, ничего не сработало, всегда выдает одну и ту же ошибку.

Это мой файл application.properties -

spring.datasource.url = jdbc:mysql://localhost:3306/dbase?autoReconnect=true&useSSL=false
spring.datasource.username = 1234
spring.datasource.password = 1234
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

spring.jpa.hibernate.ddl-auto = update

а это файл pom.xml -

<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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.springboot</groupId>
  <artifactId>springbootrestapi</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>springbootrestapiexample Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>       
  </dependencies>
  <build>
    <finalName>springbootrestapiexample</finalName>
  </build>
</project>

Это трассировка стека -

16:33:43.182 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
16:33:43.206 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter-[\w-]+/, /spring-boot/target/classes/, /spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/]
16:33:43.207 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/C:/Users/Amber%20Bhanarkar/eclipse-workspace/springbootrestapi/target/classes/]

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ / _` | \ \ \ \
 \/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.4.RELEASE)

2019-05-29 16:33:43.767  INFO 13396 --- [  restartedMain] c.s.s.StudentApplication                 : Starting StudentApplication on LAPTOP-BV6107FE with PID 13396 (started by Amber Bhanarkar in C:\Users\Amber Bhanarkar\eclipse-workspace\springbootrestapi)
2019-05-29 16:33:43.768  INFO 13396 --- [  restartedMain] c.s.s.StudentApplication                 : No active profile set, falling back to default profiles: default
2019-05-29 16:33:43.892  INFO 13396 --- [  restartedMain] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@754391d8: startup date [Wed May 29 16:33:43 IST 2019]; root of context hierarchy
2019-05-29 16:33:49.463  INFO 13396 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2019-05-29 16:33:49.552  INFO 13396 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-05-29 16:33:49.554  INFO 13396 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.15
2019-05-29 16:33:50.076  INFO 13396 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-05-29 16:33:50.076  INFO 13396 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 6188 ms
2019-05-29 16:33:50.354  INFO 13396 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2019-05-29 16:33:50.359  INFO 13396 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-05-29 16:33:50.360  INFO 13396 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2019-05-29 16:33:50.360  INFO 13396 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2019-05-29 16:33:50.360  INFO 13396 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2019-05-29 16:33:55.529 ERROR 13396 --- [  restartedMain] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

Вот StudentApplication.java -

package com.springboot.springbootrestapi;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@EnableJpaAuditing
public class StudentApplication {

    public static void main(String[] args) {
        SpringApplication.run(StudentApplication.class, args);
    }

}

Можете ли вы отредактировать свой вопрос и добавить полную трассировку стека вашей ошибки?

Tech at The Sparks Foundation 29.05.2019 12:59

ваша служба MySQL работает в фоновом режиме?

Tech at The Sparks Foundation 29.05.2019 13:16

@TechatTheSparksFoundation, как мне это проверить? У меня есть клиент командной строки MySQL, должен ли он работать в фоновом режиме?

PeakyBlinder 29.05.2019 13:22

перейти к start -> run, введите services.msc нажмите ввод. найдите службу с именем mysqld, и ее статус должен быть запущен.

Tech at The Sparks Foundation 29.05.2019 13:25

@TechatTheSparksFoundation вместо mysqld есть MySQL80, и он находится в рабочем состоянии, а тип запуска — автоматический.

PeakyBlinder 29.05.2019 13:28

Для MySQL8.0 вам предлагается использовать org.hibernate.dialect.MySQL8Dialect как диалект в application.properties, попробуйте и посмотрите, решит ли это вашу проблему.

Tech at The Sparks Foundation 29.05.2019 13:31

@TechatTheSparksFoundationNo, это не устранило ошибку. Есть несколько ошибок: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionE‌​исключение: не удалось создать соединение с сервером базы данных. Пытался переподключиться 3 раза. Сдаваться.

PeakyBlinder 29.05.2019 13:35

вам нужно очистить и собрать приложение после изменения application.properties

Tech at The Sparks Foundation 29.05.2019 13:37

Причина: java.sql.SQLException: невозможно загрузить подключаемый модуль аутентификации caching_sha2_password. / 2019-05-29 17:03:36.162 ПРЕДУПРЕЖДЕНИЕ 16528 --- [restartedMain] o.s.b.a.orm.jpa.DatabaseLookup: невозможно определить URL-адрес jdbc из источника данных

PeakyBlinder 29.05.2019 13:37

Вы можете добавить свой springapplication.java к своему вопросу. нажмите здесь, чтобы изменить

Tech at The Sparks Foundation 29.05.2019 13:41

также вам не хватает spring.datasource.driver-class-name=com.mysql.jdbc.Driver в вашем application.properties

Tech at The Sparks Foundation 29.05.2019 13:44

@TechatTheSparksFoundation да, я не упомянул об этом здесь, но позже я добавил эту строку в application.properties. Я делаю сборку в том числе.

PeakyBlinder 29.05.2019 13:46

Учетные данные имени пользователя, пароля, порта (3306) и db (dbase), которые вы пытаетесь подключить, верны, верно?

Filip123go 29.05.2019 13:53

@ Filip123go да, учетные данные верны.

PeakyBlinder 29.05.2019 14:06

Можете ли вы получить доступ к своей базе данных через программу управления базой данных (например, dbeaver или datagrip)

Filip123go 29.05.2019 14:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
15
590
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы должны изменить довольно мало вещей

1. Перейдите в каталог с установленным mysql на диске C и найдите my.ini файл.

Измените default_authentication_plugin на этот

default_authentication_plugin=mysql_native_password
  1. а затем перейдите к клиенту командной строки MySQL, После входа выполните этот запрос:

    ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ 'yourusername'@'localhost' ИДЕНТИФИКАЦИЯ С mysql_native_password BY 'yourpassword';

затем перезапустите службу mysql и запустите свою программу.

замените "yourusername" и "yourpassword" вашими реальными именем пользователя и паролем MySQL.

  1. Перейдите к POM и замените:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
    

с последним соединителем MySQL8

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.15</version>
</dependency>

Я надеюсь, что это помогает :)

Нет, это не сработало. Также мой соединитель mysql - «mysql-connector-java-5.1.42.jar: 5.1.42».

PeakyBlinder 29.05.2019 14:37

Обновите его до (mysql-connector-java-8.0.16), потому что вы используете mysql8

Tech at The Sparks Foundation 29.05.2019 14:41

Вы перезапускаете службу sql или нет?

Tech at The Sparks Foundation 29.05.2019 14:42

Где я должен хранить файл (файл jar соединителя MySQL) в корзине MySQL или корзине tomcat?

PeakyBlinder 29.05.2019 14:45

Да, я перезапускаю службу каждый раз

PeakyBlinder 29.05.2019 14:45

Да, сэр, решение сработало для меня. Спасибо за руководство, сэр.

PeakyBlinder 29.05.2019 15:29

Это то, что нужно проверить

  1. Убедитесь, что сервер базы данных запущен и работает, а детали вашего подключения работают нормально в автономном тесте.
  2. Предоставьте доступ, если нет, посетите:

Хосту 'xxx.xx.xxx.xxx' не разрешено подключаться к этому серверу MySQL.

  1. Почему вы используете Spring Boot в Tomcat в первую очередь, а не как толстую банку? Во-вторых, JAR клиента mysql должен быть включен в библиотеку tomcat.

  2. Увеличьте максимальное количество подключений mySQL, если на сервере заканчиваются доступные подключения

Другие вопросы по теме