我有以下代碼。此代碼負責從遠程位置連接到MySQL數據庫。但問題是,代碼試圖連接到本地主機上的MySQL。JPA - 指向本地主機的EntityManagerFactory
收到實際的例外是:值java.sql.SQLException: 致訪問被拒絕的用戶 'my_user' @ 'LOCALHOST_IP'(使用密碼:YES)
我使用Spring,JPA和休眠我項目。
@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());
}
問候 Anuj
你是否試過用硬編碼的用戶名和密碼來知道它是否在第一級工作..然後我們將看看是什麼概率 –
是的,我嘗試了硬編碼的用戶名和密碼。但是得到相同的錯誤。 \t \t無法打開JPA EntityManager進行事務處理;嵌套異常是javax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:無法打開連接 –
問題在於數據庫用戶。最初我創建了一個像userrname @ server_ip_address這樣的用戶。現在,我只以'用戶名'的身份創建了一個新用戶。現在可以連接數據庫了。感謝指針。 –