java.sql.SQLException:拒绝用户访问';测试'@';本地主机';(使用密码:是)
我用类似的问题检查了多个链接,但没有一个与我的案例相关 我试图从我的Spring引导代码访问MySQL,但我看到了这个错误java.sql.SQLException:拒绝用户访问';测试'@';本地主机';(使用密码:是),java,mysql,spring-boot,spring-mvc,spring-data-jpa,Java,Mysql,Spring Boot,Spring Mvc,Spring Data Jpa,我用类似的问题检查了多个链接,但没有一个与我的案例相关 我试图从我的Spring引导代码访问MySQL,但我看到了这个错误 原因:java.sql.SQLException:用户'abcd'@'localhost'的访问被拒绝(使用密码:是) 在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)~[mysql-connector-java-8.0.13.jar:8.0.13] 在com.mysql
原因:java.sql.SQLException:用户'abcd'@'localhost'的访问被拒绝(使用密码:是)
在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)~[mysql-connector-java-8.0.13.jar:8.0.13]
在com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)~[mysql-connector-java-8.0.13.jar:8.0.13]
在com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)~[mysql-connector-java-8.0.13.jar:8.0.13]
在com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)~[mysql-connector-java-8.0.13.jar:8.0.13]
在com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455)~[mysql-connector-java-8.0.13.jar:8.0.13]
在com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)~[mysql-connector-java-8.0.13.jar:8.0.13]
在com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)~[mysql-connector-java-8.0.13.jar:8.0.13]
在com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)~[HikariCP-3.4.2.jar:na]
在com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:354)~[HikariCP-3.4.2.jar:na]
在com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202)~[HikariCP-3.4.2.jar:na]
在com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:473)~[HikariCP-3.4.2.jar:na]
在com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)~[HikariCP-3.4.2.jar:na]
... 省略了88个公共框架
Application.properties:
spring.datasource.url=jdbc:mysql://127.0.0.1/test
spring.datasource.username=abcd
spring.datasource.password=password
spring.datasource.driver类名=com.mysql.jdbc.driver
spring.jpa.database-platform=org.hibernate.dial.mysql5dial
spring.jpa.generate ddl=true
spring.jpa.hibernate.ddl-auto=update
logging.level.web=debug
logging.level.org.hibernate.SQL=debug
我尝试更改url、用户名和密码
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=password
我也试着直接给予
spring.datasource.url=jdbc:mysql://localhost:3306/test?user=root&password=password
我有一个配置类,如下所示
TestDataRepositoryConfig.java
import javax.persistence.EntityManagerFactory;
导入javax.sql.DataSource;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.beans.factory.annotation.Value;
导入org.springframework.context.annotation.Bean;
导入org.springframework.context.annotation.Configuration;
导入org.springframework.orm.jpa.JpaTransactionManager;
导入org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
导入org.springframework.orm.jpa.vendor.hibernatejbavendorapter;
导入org.springframework.transaction.PlatformTransactionManager;
导入org.springframework.transaction.annotation.EnableTransactionManagement;
导入com.zaxxer.hikari.HikariConfig;
导入com.zaxxer.hikari.HikariDataSource;
@配置
@启用事务管理
公共类TestDataRepositoryConfig{
/**
*记录器
*/
私有静态最终记录器LOG=LoggerFactory.getLogger(TestDataRepositoryConfig.class);
@值(${spring.datasource.driver类名}”)
专用字符串驱动器类;
@值(${spring.datasource.url}”)
私有字符串jdbcUrl;
@值(${spring.datasource.username}”)
私有字符串jdbc用户名;
@值(${spring.datasource.password}”)
私有字符串jdbc密码;
@豆子
公共数据源数据源(){
LOG.info(“存储库配置”);
HikariConfig数据源配置=新HikariConfig();
dataSourceConfig.setDriverClassName(driverClass);
dataSourceConfig.setJdbcUrl(jdbcUrl);
dataSourceConfig.setUsername(jdbcUserName);
dataSourceConfig.setPassword(jdbcPassword);
返回新的HikariDataSource(dataSourceConfig);
}
@豆子
公共实体管理工厂实体管理工厂(){
HibernateJavaEndorapter vendorAdapter=新的HibernateJavaEndorapter();
vendorAdapter.setGenerateDdl(真);
LocalContainerEntityManagerFactoryBean工厂=新的LocalContainerEntityManagerFactoryBean();
工厂。setJpaVendorAdapter(供应商适配器);
setPackagesToScan(“com.project.db.entities”);
setDataSource(dataSource());
factory.AfterPropertieSet();
返回factory.getObject();
}
@豆子
公共平台TransactionManager TransactionManager 1(EntityManager工厂EntityManager工厂){
返回新的JpaTransactionManager(entityManagerFactory);
}
}
我没有我的机器的管理员权限,无法检查服务。但是我能够使用mySQL工作台通过root用户和'abcd'用户连接到mySQL服务器
我能够使用mySQL工作台通过root用户和'abcd'用户连接到mySQL服务器
我不太熟悉mySQL workbench,但您应该能够以“root”身份连接到数据库,并检查您尝试使用的帐户是否已正确创建。例如,运行
SELECT host, user FROM mysql.user WHERE user = 'root';
查看已为根帐户创建的主机作用域。请注意,对于主机localhost
和%
,通常应该有单独的user
行。MySQL访问控制系统不允许您从非本地主机IP地址验证localhost
帐户或从本地主机IP地址验证%
帐户
那儿