指向本地主机的java JPA EntityManagerFactory
我有以下代码。这段代码负责从远程位置连接到MySQL数据库。但问题是,代码试图连接到本地主机上的MySQL
实际收到的例外情况是: 原因:java。sql。SQLException:拒绝用户“my_user”@“localhost_ip”的访问(使用密码:YES)
我在项目中使用Spring、JPA和hibernate
@Configuration("persistenceContext")
@EnableJpaRepositories(entityManagerFactoryRef = "entityManagerFactory",
transactionManagerRef = "jpaTransactionManager",
basePackages = {"my.repository"})
@EnableTransactionManagement
public class PersistenceContext {
@Autowired
private DataSourcePropertyConfig dataSourcePropertyConfig;
public BasicDataSource datasource() {
final BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(dataSourcePropertyConfig.getMySqlDriverClassName());
dataSource.setUsername(dataSourcePropertyConfig.getMySqlDBUsername());
dataSource.setPassword(dataSourcePropertyConfig.getMySqlDBPassword());
dataSource.setUrl("jdbc:mysql://<host>:<port>/<database>");
dataSource.setMaxActive(10);
dataSource.setMaxIdle(5);
dataSource.setInitialSize(5);
dataSource.setValidationQuery("SELECT 1");
return dataSource;
}
public JpaVendorAdapter jpaVendorAdapter() {
final HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
hibernateJpaVendorAdapter.setShowSql(true);
hibernateJpaVendorAdapter.setGenerateDdl(false);
hibernateJpaVendorAdapter.setDatabase(Database.MYSQL);
return hibernateJpaVendorAdapter;
}
@Bean(name = "entityManagerFactory")
public EntityManagerFactory entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean();
entityManagerFactoryBean.setDataSource(this.datasource());
entityManagerFactoryBean.setJpaVendorAdapter(this.jpaVendorAdapter());
entityManagerFactoryBean.setPackagesToScan("my.entity");
entityManagerFactoryBean.afterPropertiesSet();
return entityManagerFactoryBean.getObject();
}
@Bean(name = "jpaTransactionManager")
@Primary
public PlatformTransactionManager jpaTransactionManager() {
return new JpaTransactionManager(entityManagerFactory());
}
问候 阿努伊
# 1 楼答案
错误消息
并不表示您正在连接本地主机IP地址上的数据库,而是表示您正在连接本地主机IP地址上的数据库
至于为什么会出现拒绝访问错误:很可能数据库中没有匹配
'my_user'@'localhost_ip'
或'my_user'@'%'
的用户记录