Доступ запрещен для пользователя ‘root’ @ localhost (с использованием пароля: да), при запуске моего проекта в spring boot появляется следующее сообщение об ошибке

#java #mysql #spring #spring-boot

#java #mysql #spring #spring-boot

Вопрос:

Я могу войти в свою учетную запись mysql и создать базу данных, таблицу и т. Д. Но При запуске моего проекта springboot я получаю эту ошибку. Я перепробовал все возможные способы ее решения, но не смог найти ответа.

Это моя конфигурация в файле application.properties.

 spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/06sbms
spring.datasource.username = root       
spring.datasource.password = root
 

Это ошибка, которую я получаю при попытке запустить мое загрузочное приложение через spring tool suite.

 java.sql.SQLException: Access denied for user 'root     '@'localhost' (using password: YES)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.22.jar:8.0.22]
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.22.jar:8.0.22]
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.22.jar:8.0.22]
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.22.jar:8.0.22]
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.22.jar:8.0.22]
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.22.jar:8.0.22]
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.22.jar:8.0.22]
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.5.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) ~[HikariCP-3.4.5.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-3.4.5.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477) ~[HikariCP-3.4.5.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560) ~[HikariCP-3.4.5.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-3.4.5.jar:na]
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-3.4.5.jar:na]
    at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) ~[spring-jdbc-5.3.2.jar:5.3.2]
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) ~[spring-jdbc-5.3.2.jar:5.3.2]
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ~[spring-jdbc-5.3.2.jar:5.3.2]
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:330) ~[spring-jdbc-5.3.2.jar:5.3.2]
    at org.springframework.data.jdbc.repository.config.DialectResolver$DefaultDialectProvider.getDialect(DialectResolver.java:107) ~[spring-data-jdbc-2.1.2.jar:2.1.2]
    at org.springframework.data.jdbc.repository.config.DialectResolver.lambda$getDialect$0(DialectResolver.java:77) ~[spring-data-jdbc-2.1.2.jar:2.1.2]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
    at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na]
    at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543) ~[na:na]
    at org.springframework.data.jdbc.repository.config.DialectResolver.getDialect(DialectResolver.java:79) ~[spring-data-jdbc-2.1.2.jar:2.1.2]
    at org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration.jdbcDialect(AbstractJdbcConfiguration.java:144) ~[spring-data-jdbc-2.1.2.jar:2.1.2]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1179) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:571) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1367) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1287) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1179) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:571) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) ~[spring-beans-5.3.2.jar:5.3.2]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:923) ~[spring-context-5.3.2.jar:5.3.2]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:588) ~[spring-context-5.3.2.jar:5.3.2]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1309) ~[spring-boot-2.4.1.jar:2.4.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1298) ~[spring-boot-2.4.1.jar:2.4.1]
    at com.ashokit.Application.main(Application.java:10) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.4.1.jar:2.4.1]
 

Пожалуйста, предложите мне какое-нибудь решение.

 MY Rest Controller class
package com.praveen.restcontroller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.praveen.bindigs.Ed_Elg_Dtls;
import com.praveen.bindigs.SearchCriteria;
import com.praveen.service.InsurancePlanService;

@RestController
public class InsurancePolicyRestController {

    @Autowired
    private InsurancePlanService service;
    
    @PostMapping(value="/policydtls", consumes = "application/json", produces = "application/json" )
    public ResponseEntity<List<Ed_Elg_Dtls>> getPolicyDetails(@RequestBody SearchCriteria sc){
        
        List<Ed_Elg_Dtls> planDetails = service.findPlans(sc);
        return new ResponseEntity<List<Ed_Elg_Dtls>>(planDetails, HttpStatus.OK);
    }
}
 
 Service class
package com.praveen.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import com.praveen.bindigs.Ed_Elg_Dtls;
import com.praveen.bindigs.SearchCriteria;

@Service
public class InsurancePlanServiceImpl implements InsurancePlanService {
    
    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<Ed_Elg_Dtls> findPlans(SearchCriteria sc){
        
        StringBuilder sb = new StringBuilder("SELECT * FROM ED_ELG_DTLS WHERE 1=1 ");
        
        if(sc.getPlanName() != null) {
            sb.append("AND PLAN_NAME = '" sc.getPlanName() "'");
        }
        if(sc.getPlanStatus() != null) {
            sb.append("AND PLAN_STATUS = '" sc.getPlanStatus() "'");
        }
        if(sc.getStartDate() != null amp;amp; sc.getEndDate() != null) {
            sb.append("AND START_DATE >= '" sc.getStartDate() "' AND END_DATE <= '" sc.getEndDate() "'");
        }
        
        String sql = sb.toString();
        List<Ed_Elg_Dtls> result = jdbcTemplate.query(sql, new RowMapperImpl());
        return resu<
    }
}
 
 Binding class/Entity class
package com.praveen.bindigs;

import java.sql.Date;
import lombok.Data;

@Data
public class Ed_Elg_Dtls {

    private Integer ED_ID;
    private Integer CASE_NO;
    private String PLAN_NAME;
    private String PLAN_STATUS;
    private Double BENIFIT_AMT;
    private String DENIAL_RSN;
    private Date START_DATE;
    private Date END_DATE;
}
 
 Search class
package com.praveen.bindigs;

import java.sql.Date;
import lombok.Data;

@Data
public class SearchCriteria {

    private String planName;
    private String planStatus;
    private Date startDate;
    private Date endDate;
}
 
 pom.xml

<?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.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ashokit</groupId>
    <artifactId>Dynamic-Searching</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>07-MiniProject-DynamicSearching</name>
    <description>Dynamic Searching Application</description>

    <properties>
        <java.version>15</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</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>
            <optional>true</optional>
        </dependency>
        
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
         <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>        
    <!-- <dependency>   
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>   --> 
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

 

Я использую Spring data jdbc, нужно ли мне выполнять какую-либо другую конфигурацию в классе сущностей или любое другое изменение кода.. пожалуйста, укажите..
Спасибо.

Комментарии:

1. У Spring есть учебное пособие, и я предлагаю вам проверить это: spring.io/guides/gs/accessing-data-mysql … Я не вижу ничего странного в ваших файлах свойств (но вы не показали никакого другого кода), единственное, что указано /06 в имени базы данных

2. все возможные способы должны быть конкретными. Это, вероятно, самая распространенная проблема при запуске MySQL.

3. Это предложения, предоставленные другими, я пробовал все это, но они все еще не работают .. ВЫБЕРИТЕ user, authentication_string, плагин, хост ИЗ mysql.user; ИЗМЕНИТЕ USER ‘root’ @ ‘localhost’, ИДЕНТИФИЦИРОВАННЫЙ С ПОМОЩЬЮ mysql_native_password С ПОМОЩЬЮ ‘password’; СБРОСЬТЕ ПРИВИЛЕГИИ; В качестве альтернативы вы можете создать другого пользователя и предоставить привилегии. СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ «ankush» @ «localhost», ИДЕНТИФИЦИРУЕМОГО «паролем»; ПРЕДОСТАВЬТЕ ВСЕ ПРИВИЛЕГИИ . ДЛЯ «ankush» @ «localhost» С ОПЦИЕЙ ПРЕДОСТАВЛЕНИЯ;

Ответ №1:

 static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost:3306/YOUR_DB_NAME";
   static final String USER = "root";
   static final String PASS = "YOUR_ROOT_PASSWORD"; 

  Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
 

или вы можете попробовать это,
вы можете просто войти в phpMyAdmin, перейти к пользователям, нажать добавить пользователя и ввести хост, с которого вы хотите запустить свое JavaApp

Ответ №2:

Попробуйте это, если это может быть вам полезно:

Предоставьте ПРИВИЛЕГИИ пользователю:

введите это в командной строке:

 $ mysql -u username -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> flush privileges;
 

Комментарии:

1. Не позволяя выполнить этот запрос, это сообщение показывает mysql> ПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ . TO ‘root’@’localhost’, ИДЕНТИФИЦИРУЕМЫЙ ‘root’ С ОПЦИЕЙ GRANT; ОШИБКА 1064 (42000): У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQLдля правильного синтаксиса использовать рядом с ‘ИДЕНТИФИЦИРУЕТСЯ ‘root’ С ОПЦИЕЙ ПРЕДОСТАВЛЕНИЯ’ в строке 1

Ответ №3:

Попробуйте один раз проверить URL-адрес вашей базы данных, правильный он или нет, в основном он должен выглядеть примерно так

 spring.datasource.url=jdbc:mysql://localhost:3306/mysqlDatabase?useSSL=false
 

но я не знаю, почему у вас есть этот дополнительный 06 после ‘/’. А также попробуйте добавить эти две строки:

 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
 

Комментарии:

1. / 06sbms — это имя моей базы данных, сэр.. Я также пробовал вышеуказанные конфигурации, но не работает, сэр..

Ответ №4:

Я думаю, вы пропустили добавление приведенной ниже конфигурации в свой файл aoolication.properties:

 spring.jpa.hibernate.ddl-auto=none
 

Пожалуйста, проверьте другие конфигурации здесь: https://www.springboottutorial.com/spring-boot-with-mysql-and-oracle

Ответ №5:

Пожалуйста, проверьте URL-адрес вашей базы данных, а также схему и имя пользователя, также убедитесь в вашем пароле БД, если для вашей БД нет пароля, пожалуйста, удалите spring.datasource.password в application.properties.