[Spring] Spring JDBC 연결 이 안 되 는 문제 해결
test 데이터베이스 와 information 에 연결 할 수 있 습 니 다.schema 데이터베이스 (test 와 information schema 데이터 베 이 스 는 MySQL 설치 후 자체 에 있 는 데이터베이스) 이지 만 자체 create 데이터 베 이 스 를 연결 할 수 없습니다.테스트 프로 세 스 오류 정보 표시:
: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@4b76c591 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.sql.SQLException: Access denied for user 'arthur'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.GeneratedConstructorAccessor7.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
이 오류 가 발생 한 원인: 계 정 비밀번호 문제!하지만 주의!!연결 가능
test 데이터베이스.
나중에 필 자 는 테스트 를 통 해 비밀번호 가 비어 있 으 면 임의의 문자열 의 계 정 이 test 데이터 베 이 스 를 방문 할 수 있다 는 것 을 알 게 되 었 다. 필 자 는 이것 이 MySQL 이 좋 지 않 은 곳 이 라 고 생각 하고 참고 만 할 수 있다 (test 데이터 베 이 스 를 이렇게 설정 한 이 유 를 이해 할 수 없 기 때문이다).
필자 가 데이터 베 이 스 를 연결 하 는 것 은 c3p 0 연결 탱크 방식 을 사용 하 는데 여기에 치 명 적 인 오류 가 있다.다음 과 같다.
c3p 0 을 설정 한 bean 입 니 다.
<!-- c3p0 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="jdbcUrl" value="${JdbcUrl}"></property>
<property name="driverClass" value="${driverClass}"></property>
<property name="numHelperThreads" value="10"></property>
<property name="initialPoolSize" value="${initPoolSize}"></property>
<property name="maxPoolSize" value="${maxPoolSize}"></property>
</bean>
치 명 적 인 잘못 은
<property name="user" value="${user}"></property>
value = "${user}", 주의!!!여기 user 못 써!!!... 로 바꾸다<property name="user" value="${username}"></property>
문제 해결, 성공 적 인 연결.종합 적 으로 이 문제 가 발생 하 는 이 유 는 변수 이름 이 시스템 이나 프레임 워 크 의 변수 와 충돌 할 수 있 기 때문이다.따라서 이름 을 지 을 때 충돌 할 수 있 는 이름 을 사용 하지 마 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.