Java

(cafe24 카페24 호스팅) Access denied ~~ 에러 뜰 때

deerfrd 2017. 4. 20. 22:28
반응형

일단 내 환경은 Spring MVC 였고, restful한 url 사용, Mybatis, MySQL를 사용하는 환경이었다.


카페24에 db 연동(연결,접속)을 하려는데 자꾸 500 에러가 발생.

catalina.out 을 열어서 로그를 확인해 보니 Access denied 에러 발생.

구글을 다 뒤져보고, 카페24에 문의글도 남겼지만 결국 해결 못함. 

나같은 사람이 또 있을까봐 남겨둔다.

카페24 호스팅 db연동 AtoZ 매뉴얼



** 카페 24 호스팅 후 DB (MySQL) 연결하는 법


1) 일단 내가 호스팅한 웹에 붙이고자 하는 DB를 통채로 Export하여 ~.sql 파일로 만들어둠(백업 --> 해당 방법의 자세한 내용은 MySQL export 하는법 찾아보면 됨).


2) 카페24의 '서비스 접속관리 > MySQL 웹어드민 접속 > 상단 탭 Import > 아까 백업해둔 sql 파일을 선택하여 저장하면 내 DB의 테이블 및 데이터들이 가져와짐.


3) MyBatis와 DB를 연결하는 파일 (나는 context-datasource.xml 이었음) 을 수정

 <bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/카페24아이디"/>

<property name="username" value="카페24아이디"/>

<property name="password" value="카페24DB접속비번"/>

</bean>


4) 호스팅 서버 (경로:/home/hosting_users/카페24아이디/tomcat/conf) 에 있는 server.xml 의 18line의 주석 해제 후, 아래와 같이 수정

<Resource name="jdbc/카페24아이디"

              auth="Container"

              type="javax.sql.DataSource"

              driverClassName="com.mysql.jdbc.Driver"

              url="jdbc:mysql://localhost:3306/카페24아이디"

              username="카페24아이디"

              password="카페24DB접속비번"

              maxActive="20"

              maxIdle="10"

              maxWait="3000"/> 


5) 호스팅 서버 (경로:/home/hosting_users/카페24아이디/tomcat/conf) 에 있는 context.xml 의 맨 마지막 중 </context> 바로 위에 4번과 동일한 내용을 넣고 저장.


6) 수정한 3개의 파일 (3~5파일)을 호스팅에 덮어씌우고 톰캣 껐다 킴.


7) DB 연결작업 완료.


+) 혹시, 카페24에서 제공해주는 phpMyAdmin 툴이 불편하여, 자신이 쓰는 툴(예:MySQL workbench)로 카페24의 스키마를 불러오고 싶다면, 카페24 외부서버 만 쳐서 구글링 해도 외부 ip로 원격 접속이 가능하다.


++) 7번까지 완료하였는데, 혹시 'Table '테이블명' doesn't exist' 라는 에러가 뜨면, 카페24의 웹 어드민(=phpMyAdmin)에 있는 스키마의 테이블명의 대/소문자를 확인하자.

나의 경우에는 Mybatis 및 기존 스키마의 테이블명들은 모두 대문자로 되어있었는데, DB백업 및 phpMyAdmin에 해당 DB Import하는 작업을 거치면서 테이블명들이 모두 소문자로 바뀌어 있었다.

대소문자를 구분하므로, MyBatis 쿼리문에 썼던 문자 그대로로 phpMyAdmin의 테이블명들을 모두 바꿔주어야 한다.



반응형