웹이야기

전자정부 표준프레임워크 MySQL 연결 본문

전자정부표준프레임워크

전자정부 표준프레임워크 MySQL 연결

yeon.Biju 2020. 3. 12. 09:13

1. MySQL을 설치한다.

   - Window 에서 설치하는 경우 아래 방법을 추천한다.

https://webobj.tistory.com/1

 

1. MySql 설치(윈도우 환경, MySQL5.5)

윈도우에서 MySql 설치하기 1) 먼저 웹 플랫폼 설치 관리자(Web Pl)를 설치한다. Web Platform Installer 가 5.1 로 업그레이 되어서 약간의 변경이 있을 수도 있겠다. https://web-obj.tistory.com/83 웹 플랫폼..

webobj.tistory.com

   - 리눅스에서 설치하는 경우 아래 방법을 추천한다.

https://webobj.tistory.com/5

 

5. MySQL 설치(리눅스) - 소스 컴파일

MySQL 8.0.18 설치 MySQL 5.7.28 도 동일하게 설치를 진행해도 잘 되었다. 1. 이미 설치된 것이 있는지 없는지 확인 #ps -ef | grep mysql #rpm -qa | grep mysql 2. 다운로드(소스 버전을 다운로드 받는다) https..

webobj.tistory.com

 

2. 설치 후 character-set 을 확인한다. 

   - 한글이 잘 안들어가는 경우가 발생할 수 있으므로 확인한다.

https://webobj.tistory.com/77

 

MySQL character-set 확인

MySQL character-set 을 확인하는 방법이다. 한글이 잘 들어가기 위한 조건을 확인한다. 1. 한글이 잘 안들어가는 경우의 캐릭터 셋 mysql> show variables like '%char%'; +--------------------------+---------..

webobj.tistory.com

 

3. 전자정부 표준프레임워크 3.8의 경우 아래 글의 3. MySQL 연결 항목을 참고한다.

https://webobj.tistory.com/43

 

전자정부 표준프레임워크 3.8 all-in-one 처음 셋팅해보기 -2(With MySQL)

전자정부 표준 프레임워크를 기존에 오라클로 셋팅을 진행하였었다. https://webobj.tistory.com/34 전자정부 표준프레임워크 3.8 all-in-one 처음 셋팅해보기 -2(With Oracle) 이제 전자정부표준프레임워크 템플..

webobj.tistory.com

 

4. 전자정부 표준프레임워크 3.9의 경우를 기술해본다.

   - 연결정보를 암호화 하는 경우

   - 연결정보를 암호화 하지 않는 경우 2가지로 생각해볼 수 있다.

 

* 연결정보를 암호화 하는 경우에는 아래 글을 참조한다. 오라클을 기준으로 하여 작성되어 있다.

https://webobj.tistory.com/74

 

설정파일의 중요 정보 암호화/복호화(globals.properties)

전자정부 표준프레임워크 3.8부터 globals.properties에 있는 중요정보를 암/복호화 할 수 있는 기능을 제공하고 있다. 위키문서로는 다음을 참조한다 https://www.egovframe.go.kr/wiki/doku.php?id=egovframewor..

webobj.tistory.com

 

5. 연결정보를 암호화하지 않고 기존 방식대로 설정하는 방법

   - globals.properties

   - context-datasource.xml

   - context-crypto.xml

   3개의 파일을 수정한다.

* MySQL 드라이버는 프로젝트에 load 되어 있어서 따로 설정이나 드라이버를 다운받지 않는다.

 

   1) context-crypto.xml

      - Ctrl + Shift + r 을 누른다음 context-crypto.xml 을 입력하여 파일을 연다.

   - 소스를 수정한다.

<egov-crypto:config id="egovCryptoConfig" 
     initial="true"
     crypto="true"
     algorithm="SHA-256"
     algorithmKey="egovframe"
     algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ="
cryptoBlockSize="1024"
cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
/>

 

부분에서 

initial="false" 

crypto="false" 

 

로 수정한다.

 

 

   2) context-datasource.xml

      - 동일한 방법으로 context-datasource.xml 파일을 연다.

      - 소스를 수정한다.

<!-- MySQL -->
<beans profile="mysql">  
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${Globals.mysql.DriverClassName}"/>
<property name="url" value="${Globals.mysql.Url}" />
<property name="username" value="${Globals.mysql.UserName}"/>
<!-- 암호화(Crypto) 관련 서비스 https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:fdl:crypto_simplify_v3_8 참조 -->
<property name="password" value="#{egovEnvCryptoService.getPassword()}"/>
</bean>
</beans>

 

부분에서 

<property name="password" value="#{egovEnvCryptoService.getPassword()}"/>

<property name="password" value="${Globals.mysql.Password}"/>

으로 수정한다. 

 

   3) globals.properties

      - 동일한 방법으로 파일을 연다.    

   - 소스를 수정한다.

Globals.DbType = mysql

 

#mysql
Globals.mysql.DriverClassName=net.sf.log4jdbc.DriverSpy
Globals.mysql.Url=jdbc:log4jdbc:mysql://127.0.0.1:3306/com
Globals.mysql.UserName = com
Globals.mysql.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D

 

이 부분을 수정하고 나머지 설정정보는 주석처리 한다.

 

Globals.DbType = mysql

 

mysql 이 소문자인 것도 확인하고 연결정보를 입력해준다.

 

#mysql
Globals.mysql.DriverClassName=net.sf.log4jdbc.DriverSpy
Globals.mysql.Url=jdbc:log4jdbc:mysql://1.1.1.1:3306/testdb
Globals.mysql.UserName = test
Globals.mysql.Password = test1234

 

1.1.1.1 : MySQL이 설치된 PC의 IP

testdb : DB 명

test : MySQL 사용자 명

test1234 : MySQL 비밀번호 이다.

 

다른 것들은 아래와 같이 주석처리 해준다.


#oracle
#Globals.oracle.DriverClassName=oracle.jdbc.driver.OracleDriver
#Globals.oracle.Url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
#Globals.oracle.UserName = com
#Globals.oracle.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D

#altibase
#Globals.altibase.DriverClassName=Altibase.jdbc.driver.AltibaseDriver
#Globals.altibase.Url=jdbc:Altibase://127.0.0.1:20300/mydb?encoding=UTF-8
#Globals.altibase.UserName = com
#Globals.altibase.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D

#tibero
#Globals.tibero.DriverClassName=com.tmax.tibero.jdbc.TbDriver
#Globals.tibero.Url=jdbc:tibero:thin:@127.0.0.1:8629:tibero
#Globals.tibero.UserName = com
#Globals.tibero.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D

#cubrid
#Globals.cubrid.DriverClassName=cubrid.jdbc.driver.CUBRIDDriver
#Globals.cubrid.Url=jdbc:cubrid:127.0.0.1:30000:com:::?charset=utf-8
#Globals.cubrid.UserName = com
#Globals.cubrid.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D

#MariaDB
#Globals.maria.DriverClassName=org.mariadb.jdbc.Driver
#Globals.maria.Url=jdbc:mariadb://127.0.0.1:3336/com
#Globals.maria.UserName = com
#Globals.maria.Password = xz4fmrSdr1vGGl6UtwPLwA%3D%3D

#postgreSQL
#Globals.postgres.DriverClassName=org.postgresql.Driver
#Globals.postgres.Url=jdbc:postgresql://127.0.0.1:5432/comdb
#Globals.postgres.UserName=com
#Globals.postgres.Password=xz4fmrSdr1vGGl6UtwPLwA%3D%3D

 

 

 

6. 디비 스크립트 실행

   - 처음 설치하는 경우에 테이블 생성 및 스크립트를 실행해주어야 한다.

     2개의 파일을 열어 MySQL 에서 실행하여 테이블 및 데이타를 생성해준다. 

       

   1. com_DDL_mysql.sql

      - 프로젝트 > script > ddl > mysql > com_DDL_mysql.sql

 

   2. com_DML_mysql.sql

      - 프로젝트 > script > dml > mysql > com_DML_mysql.sql

 

 

 

이제 톰캣을 시작해보거나 해서 연결된 것을 테스트 해본다.

 

 

연결도중에 

Unable to load authentication plugin 'caching_sha2_password'.

 

와 같은 오류가 발생한다면 아래 URL 을 참조한다.

 

https://web-obj.tistory.com/311

 

Unable to load authentication plugin 'caching_sha2_password'

Unable to load authentication plugin 'caching_sha2_password' MySQL 8.x를 설치하고 토드 에지를 통해 접속할려고 했더니 에러가 발생하였다. 8.x 부터는 변경사항이 꽤 있는 것 같다. MySQL 8.x는 인증 플러그..

web-obj.tistory.com

* 이 글을 보시는 분이 경험이 많지 않은 분이고, 처음 셋팅해보는 것이라면 MySQL 버전을 낮추는 것(ex, MySQL 5.5 같은)을 추천한다.

 

 

 

Done.

 

 

 

 

 

 

 

Comments