반응형

1년간 개인 서버를 운영하다가 now()함수를 돌렸을 때 시간이 맞지 않다는 것을 지금 발견했다..ㅋㅋ아마 작업하고 테스트 했을때 UTC하고 KST하고 9시간 밖에 차이가 안 났기 때문에, 못알아 챈 것 같다. ㅋㅋ

select @@system_time_zone, @@global.time_zone;

일단 위 함수 돌렸을 때 시스템 시간이 UTC로 되어있었다. 이걸 한국 시간에 맞게 바꿔보자

방법 1. 임시 방편 - Maria 재부팅 하면 초기화

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

터미널을 이용해 우리 서버로 접속하고 위 명령어를 입력해주자. 아마 비번치라고 나오는데 비번 쳐주면 된다. 이 작업을 해야 시스템에서 사용하는 KST 정보들을 쓸 수 있다.

SET GLOBAL time_zone='Asia/Seoul'; SET time_zone = 'Asia/Seoul';

마리아 DB 에서 위 명령어를 입력해주자.

SELECT @@system_time_zone, @@global.time_zone, @@session.time_zone;

그리고나서 결과를 보면 일단 global, session의 time_zone이 Asia/Seoul로 바뀌었다.

SELECT NOW();

이 상태에서 셀렉트 나우를 찍어보면 현재 날짜로 바뀌긴 할텐데, 마리다 DB 서비스 혹은, 서버를 재부팅하면 원래대로 돌아간다.. ㅜㅜ...... 영구적으로 바꾸기 위해선 아래방법을 진행한다.

방법 2. 환경 변수 설정

cd /etc/ 
sudo vim my.cnf

etc 경로의 my.cnf를 수정하자, 있으면 내용이 있을꺼고, 보통은 저 경로에 저 파일이 없으니 새로 생성된다.

[mysqld]
default-time-zone=Asia/Seoul

위 내용을 입력하고 저장해주자.

systemctl restart mysql

 

그리고 마리아 DB 서비스를 재부팅 해주자.

SELECT @@system_time_zone, @@global.time_zone, @@session.time_zone;

재부팅 후에도 타임존이 Asia/Seoul로 유지되는 것을 볼 수 있다.

SELECT NOW();

셀렉트 나우를 통해 최종적으로 시간을 확인하자.

 

#마리아DB #mariaDB #Mysql #타임존 #변경 #시간 #안맞음 #timezone

반응형
반응형

오랫만에 서버 이전을 하고 DB 타겟을 바꾸고 서비스를 실행하는데 DB 연결이 안되는 문제가 나타났다.

Cannot create PoolableConnectionFactory (Could not connect to address= 
(host=xxx.xxx.xxx.xxx)(port=3306)(type=master) : Connection refused: connect)

당시 로그는 위처럼 찍혔다. Could not get JDBC Connection 어쩌구..DB 커넥션을 맺은 JDBC 객체를 정상적으로 리턴받지 못한 모양이다. 왜지!? 전이랑 똑같이 했는데 왜 안돼!

telnet 목적지IP 포트

회사에서 IF 서비스들을 많이 다뤄서 그런지 내 기계적으로 내 PC에서 텔넷부터 찍어봤다. 오잉..? DB 포트 안열려 있네? 방화벽 문제일까? 서비스가 안올라갔나? 생각했지만, 둘다 잘 올라갔을텐데?.. 생각했다.

먼저 라이트세일 서버 방화벽부터 확인하니 3306 포트가 잘 있다. 혹시 마리아 DB 서비스가 실행중이 아닌건가?

라고 생각했지만..서비스도 정상적으로 Run 되어있었다..

netstat -ntlp | grep 3306

그럼...혹시 마리아 DB 디폴트 포트가 3306이 아니었나? 생각이 들어 찍어봤다. 하지만 역시 3306... 하지만..! 오우 shit 이상한 점을 발견했다.

3306 포트는 열려있는데 source IP가 127.0.0.1로 서버 로컬에서만 접속할 수 있도록 되어있다. 즉..! 이 마리아 DB 서버는 서버에서 직접 접근만 가능하고 외부에서 접속되지 않도록 되어있는 것이었다.

해결 방법 : bind-address 변경

vi /etc/mysql/mariadb.conf.d/50-server.cnf

위 명령어를 입력해 50-server.cnf 파일을 열어주자

내리다보면 bind-address = 127.0.0.1 이라고 되어있는 부분이 있다. 이부분을 바꿔줄 것이다. bind-address는 이 DB에 접속할 수 있는 IP를 의미한다. 지금은 127.0.0.1 즉 localhost IP가 입력되어있으니, 이 서버 자체에서만 접속가능하다.

원격지에서 접속할 수 있도록 전체 대역을 의미하는 0.0.0.0 으로 바꿀 것이다. 뭐!? 전체 공개라고!? 안돼!! 할 수도 있지만, 그건 서버 인스턴스 방화벽 설정에서 막으면 되니 신경쓰지 않아도 된다.

bind-address = 0.0.0.0

자 기존 소스는 #을 붙혀 주석처리해주고 아래에 소스를 추가하자. 혹시 vi 편집기를 사용하지 못하는 분은 구글검색을 추천한다. 위 화면에서 i를 누르면 문자 삽입상태가 된다. 그상태에서 #을 붙힌후 방향키로 아래칸으로가 0.0.0.0 소스를 추가하면 된다.

다 썻으면 ESC를 한번 누르고 그 상태에서 Shift+: 버튼을 눌러주고 wq(write+quit) 입력 후 엔터를 입력하자, 저장하고 끄겠다는거다.

service mysql restart

자 이제 위 명령어를 입력해 DB를 재부팅해주자!

netstat -ntlp | grep 3306

다시 위 명령어를 이용해서 확인해보면 0.0.0.0 전체 IP대역에서 3306 포트 접속이 가능하게끔 변경된 것을 볼 수 있다.

짜잔 다시 telnet을 찍어보니 정상적으로 접속 가능한 것이 확인되었다. 내 PC에서 DB까지 구간은 이제 정상화되었으니 다시 스프링 서비스를 Run 해보면 정상적으로 DB 커넥션 되는 것을 확인할 수 있다.

 

#마리아DB #MYSQL #스프링 #원격 #DB #접속 #연결 #오류 #JDBC #PoolableConnectionFactory #bindaddress

반응형
반응형

 

https://extsdd.tistory.com/123

 

[아마존 AWS EC2] #3 스프링/전자정부프레임워크 프로젝트 AWS에 FileZilla로 배포하기 / 메이븐 빌드 /

자 여태까지 만들었던 프로젝트를 아마존에 배포할 시간이다. https://extsdd.tistory.com/113 [Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO / http..

extsdd.tistory.com

  자 저번시간까지 했던걸 보면, 만들었던 스프링 프로젝트가 AWS EC2 인스턴스에 올라갔다. 이후 페이지를 요청했지만, 원격 서버에 마리아 DB만 설치해놓고 DB에 테이블과 데이터를 생성해놓지 않았기 때문에 오류를 뱉어냈다. 오늘은 HeidiSql을 이용해 원격 DB에 데이터를 넣어보자!

 

1. HeidiSql로 원격 DB 접속

 

https://extsdd.tistory.com/117

 

[아마존 AWS EC2] 마리아 DB 원격접속 설정하기 / HeidiSQL 원격 접속 / plink.exe / SSH 연결 / 인스턴스

과거 포스팅을 보면 EC2 인스턴스를 생성할때 3306포트에 대한 방화벽 설정은 다 해줬음으로 바로 연결을 시도해보자. 1. HeidiSql 을 이용한 원격 접속 HeidiSql을 실행하고 11시방향에 있는 새 연결 아

extsdd.tistory.com

  AWS 원격 서버에 있는 DB에 붙는법은 여기 포스팅에 써놨다. 위 포스팅을 참조해 HeidiSql로 본인 EC2 마리아DB에 접근해보자!

 

 

  다른점이 있다면 접속 계정을 Root계정으로 접근하도록 하자!

 

 

  접속 성공! AWS에 있는 본인 EC2 인스턴스에 설치한 마리아 DB에 접속하면 처음에 저렇게 빈깡통으로 되어있을 것이다. 이제 본격적으로 데이터들을 만들어보자.

2. 데이터베이스 생성

 

  일단 우리가 쓸 DB통부터 만들어야한다.

CREATE DATABASE `cp_service_db` /*!40100 COLLATE 'utf8_general_ci' */

 

  위 코드를 실행해주자.

 

 

  자 데이터베이스를 생성할 세션을 클릭하자, 3번 박스처럼. 이후 쿼리창으로가 위 명령어를 실행해주자. 따옴표 사이에 본인이 생성하려는 데이터베이스의 명칭을 입력하면 된다.

 

  명령어를 복붙하고 F9를 누르면 해당 쿼리가 실행된다. 그 결과로 2번 박스에 실행 결과가 나온다. 그럼 왼쪽 목록에 바로 생기진 않을텐데 새로고침을 해줘야한다. 본인이 눌렀던 세션을 다시 누르고 새로고침인 F5를 눌러보자. 그럼 방그 만든 테이블을 볼 수 있다(4).

 

2. 테이블 생성

 

 

 

  이번 프로젝트간 만들었던 테이블은 저 두개다. 바뀐점이 있다면 저 오른쪽 테이블의 이름이 REQ_MST에서 REQ_LOG로 바뀐 것 밖에 없다. 왜냐면 마스터성 정보가아니고 로그성 정보이기 때문이다. 저번에 테이블 생성했던 쿼리를 가지고와보자!

 

PRD_MST

 

CREATE TABLE `prd_mst` (
	`SEQ_NO` INT NOT NULL AUTO_INCREMENT COMMENT '고유 번호',
	`URL_STR` VARCHAR(300) NOT NULL COMMENT '목적지 URL',
	`DISC_STR` VARCHAR(50) NULL DEFAULT NULL COMMENT '목적지 설명',
	`USE_YN` VARCHAR(2) NOT NULL COMMENT '사용 유무',
	PRIMARY KEY (`SEQ_NO`)
)
COLLATE='utf8_general_ci'
;

 

  자 PRD_MST 테이블 생성 쿼리다. 저번에 넣었던 쿼리하고 동일하다.

 

 

  보자. 먼전 테이블을 생성할 데이터베이스를 클릭하고(1) 쿼리창에 위 테이블 생성쿼리를 입력한다(2) F9를 해당 쿼리가 실행되는데 3번박스에서 실행 결과를 확인한다. 생성결과는 밑에 REQ_LOG테이블을 생성하고 한꺼번에 확인하자

REQ_LOG

 

CREATE TABLE `req_log` (
	`SEQ_NO` INT NOT NULL COMMENT '고유 번호',
	`REQ_DATE` DATETIME NOT NULL COMMENT '날짜'
)
COLLATE='utf8_general_ci'
;

  위랑 똑같다. 그냥 쿼리 복붙..

 

 

  복붙하고 F9를 누르면 실행된다.

테이블 생성 확인

 

 

 

 

  내가 만든 데이터베이스 옆의 화살표를 눌러서 평쳐보자. 그럼 방금 만든 테이블들이 있다. 우리가 로컬에서 테스트 했던 데이터들을 넣어주자!

 

3. 테스트 데이터 삽입

 

INSERT INTO prd_mst (URL_STR, DISC_STR, USE_YN) VALUES
('www.naver.com','네이버','Y'),
('www.daum.net','다음','Y'),
('www.google.com','구글','Y'),
('www.youtube.com','유튜브','Y');
																			
SELECT * FROM PRD_MST

 

  위 쿼리를 돌리면 된다.

 

 

 

  과정은 똑같다. 2번 박스에 쿼리넣고 F9 돌리면끝. 3번 박스를 확인해서 조회 결과를 확인하자 ㅎㅎ

 

 

4. AWS EC2 서비스 결과 확인.

 

http://자기AWS아이피:8080/CP_service-1.0.0/reqUrl.do?reqParam=3

 

 

  위 주소를 복붙하고 "자기AWS아이피" 에 본인 EC2 아이피를 넣고 돌리면 저번엔 데이터가 없어서 에러가 났겠지만, 이번에는 데이터가 있기때문에 구글을 호출할 것이다.

 

#마리아DB #MariaDB #AWS #EC2 #원격 #접속 #HeidiSQL #데이터삽입 #테이블생성 #DB생성 #루트계정

 

 

반응형
반응형

 

https://extsdd.tistory.com/102

 

[Spring/eGov ] #6 웹 서비스 만들기 2 / 요청 URL 파라미터 가져오기 / Debug 방법 / 디버깅 하는법 / @Model

 

extsdd.tistory.com

  자 우리가 마지막으로 했던게 사용자 요청 URL에서 데이터를 가져오는 것을 했다. 가져온 값의 데이터가 1이면 네이버, 2면 다음, 모두 아니면 구글페이지로 넘겨줬다.

 

 

  대략 위와같은 코드로 마무리 했는데, 저렇게 어떤 변수의 값이 대놓고 찍혀있는것을 우리가 하드코딩이라고 한다.

 

하드코딩 hard coding

 

  자 하드코딩의 사전적 의미를 보면 데이터를 코드 내부에 직접 입력하는 것 이라고 한다. 즉.. 저 naver.com, daum.net, google.com 이런 값들이 코드 내부에 대놓고 박혀있는 것이 하드코딩이다.

 

  자 그럼 하드코딩인데 어쩌라고? 한다면은.. 이런 코딩방식은 피해야한다. 왜냐면 저렇게 대놓고 코드안에 데이터를 넣어버리면 당장은 편하다. 직관적으로 저 값에 의해서 실행이 되니까.. 근데 장기적인 입장에서 코드가 수정되거나, 추가되었을때 저부분과 연관된 부분에 영향을 미칠 수 있기 때문이다.

 

 당장 저 변수들이 저 컨트롤러에만 있지만, 나중에 프로젝트가 커짐에따라 저 데이터를 수백개의 자바파일에서 수천번의 참조가 일어날것이다. 그때 만약에 맘이 바껴서 naver.com이 아니라 youtube.com으로 연결하고 싶은데? 라고 맘이 바뀌면 저 수백개의, 수천줄에 참조된 저 www.naver.com이라는 값을 모두 하나도 빠짐없이 바꿔야한다. 위코드는 진짜 단순해서 진짜 바꾸기만 하면 끝이지만, 실제 현업에서 작업을 하다보면 별에별 이상한 오류가 다생긴다. 그래서 하드코딩 방식은 피해야하고, 소프트웨어가 의존성을 갖지 않도록 만들어야한다.

 

  그럼 어떻게할까!? 방법이 있다! 보통 Database를 통해 해당값을 불러온다. 데이터를 Database에서 참조하기 때문에 나중에 다른 값을 불러오고 싶거나 값을 추가하고싶으면 해당 Database에서 수정만 하면 이 스프링 소프트웨어 상에서는 수정이 필요 없는 것이다.

 

  이제 스프링 프로젝트랑 DB를 연결 하는 작업을 해보자. 우리는 취미로 코딩을 하는 개발자이기 때문에 라이센스 비용이 필요없는 무료 RDBMS인 Mara DB를 사용해보자!

 

  #과정중 이미 해버린 과정은 넘어가면 된다.

1. 마리아 DB 설치

 

https://extsdd.tistory.com/103

 

[Maria DB] 마리아 DB 10.5 다운 및 설치 / 서비스 확인 / 스프링 Spring

스프링 프로젝트에 Maria DB를 사용하기 위해서 설치해보자! Maria DB는 MYSQL DB개발자들이 나와서 만든 "무료" 오픈소스 DB라고 생각하면 된다! 성능이 뛰어난 Oracle, MSSQL은 라이센스가 없어 우리가 사

extsdd.tistory.com

  이미 내가 다 정리해놨다 위 링크로 가서 Maria DB를 설치해 주자!

2. 마리아 DB 접속 테스트

 

https://extsdd.tistory.com/104

 

[Maria DB] 마리아 DB 접속 / HeidiSQL 세션 연결

https://extsdd.tistory.com/103 [Maria DB] 마리아 DB 10.5 다운 및 설치 / 서비스 확인 / 스프링 Spring 스프링 프로젝트에 Maria DB를 사용하기 위해서 설치해보자! Maria DB는 MYSQL DB개발자들이 나와서 만든..

extsdd.tistory.com

  DB 설치를 마쳤다면 이제 위 링크의 설명을 보고 자기가 만든 DB에 접속해보자!!

 

  자 여기까지 왔다면 이제 DB설치가 끝났고 접속도 할 수 있게 되었다. 이제 테이블을 만들어 볼껀데. 일단 테이블 설계부터 해보자.

 

 

 

  난 이렇게 짤 것이다 . 자 테이블 2개를 만들껀데 PRD_MST 테이블에는

  SEQ_NO : 요청번호를 담고있음

  URL_STR : 포워딩할 목적지 주소를 가지고 있음

  DISC_STR : 해당 칼럼에 대한 설명

  USE_YN : 사용유무

  이정도로 두고

 

  REQ_MST 테이블은 살짝 Log성 데이터들이다.

  SEQ_NO : PRD_MST테이블에 있는 SEQ_NO칼럼을 참조

  REQ_DATE : 요청한 날짜

 

  이렇게 셋팅할 것이다

 

 

 

  이해가 더 갈 수 있도록. 엑셀로 가상의 데이터들을 집어 넣어 봤다.

PRD_MST테이블을 보면 4가지 URL정보를 가지고 있고 REQ_MST테이블을 보면 SEQ_NO를 요청할 때마다 그 요청한 날짜의 데이터가 들어가 있는 것을 볼 수 있다. 나중에 이 테이블을 이용해, 1번 요청이 몇일에서 몇일까지 몇번 요청 됐는지, 특정날짜에 요청이 몇번 있었는지 이런 레포트성 데이터를 산출 할 수 있다.

 

  자 설명은 끝났고 이제 DB에 해당 테이블을 생성해보자!

3. 마리아 DB 테이블 생성 및 초기화

 

https://extsdd.tistory.com/105

 

[Maria DB] 마리아 / 데이터베이스(스키마) / 테이블 생성 / 데이터 삽입 INSERT / START TRANSACTION / 데이��

https://extsdd.tistory.com/104 [Maria DB] 마리아 DB 접속 / HeidiSQL 세션 연결 https://extsdd.tistory.com/103 [Maria DB] 마리아 DB 10.5 다운 및 설치 / 서비스 확인 / 스프링 Spring 스프링 프로젝트에 Ma..

extsdd.tistory.com

  위 포스팅으로 가서 DB를 만들어주면 된다.

4. Pom.xml 수정

 

  자. 우리가 프로젝트를 Run했을때, 게시판이 뜨고 간단한 정보들이 들어있는것을 봤을 것이다. 그때 나도 든 생각이 어? 기본 예제인데 머 DB가 구성되어 있나보네? 라고 생각했었는데 맞다. 프로젝트 내부에 hsqlDB가 내장되어있다. 우리는 MariaDB를 사용할 것이기 때문에 hsqlDB를 뜯어내고 마리아DB로 대체해주는 작업을 실시해주자!

 

파일찾기 : Ctrl+Shift+R (Resource)

 

  자 프로젝트에서 컨트롤+쉬프트+R 버튼을 눌러주자.

 

 

 

  검색창에 "pom.xml"을 입력하고 Open 해주자! 그럼 우측과 같은 파일이 열리게 된다!

pom.xml

 

  일단 이 pom.xml은 우리 프로젝트에서 어떤 라이브러리를 사용할지 명시해놓는 장소이다. 예전에 우리가 라이브러리를 사용하려면 무슨..라이브러리 Import하고.. 파일도 따로 관리해주고.. 공홈하고 버전도 다르고.. 완전 개판이었다.. 내 프로젝트 다른사람이 열려고하면 뭐..라이브러리가 없네..파일이 없네...경로가 이상하네...버전이 안맞네.. 이버전과 저번과 충돌이 나네.... 후.. 한마디로 패버릴 만큼 머리가 아팠는데 그간 라이브러리 관리하는 기술이 꽤나 발전했다.

 

  이 pom.xml에 자기가 사용할 라이브러리의 dependency만 걸어놓으면은 알아서 해당 라이브러리의 최신본은 가져와서 적용시켜주고, 라이브러리 잠시 사용안할때는 주석처리로 없앨수도 있다.

 

 

  자 111번줄 언저리로 가보면 hsqldb에서부터 오라클까지 어느정도 dependency가 설정되어있다. 프레임워크 답게, 저기서 자기가 사용하고싶은걸 골라 주석 해제후 뷔페마냥 알아서 쓰란말이다.

 

  자 먼저 1번 hsqldb는 아까 말했듯이, 프로젝트에가 실행되면 그 메모리 위에 올라가는 DB이기 때문에 사용안할 것임으로 주석처리를 하자

 

  2번은 Log4jdbc라고해서 쿼링이 수행되면 그 행동과 결과를 톰캣 콘솔 Log에 찌어주는 아주 고마운 놈이다. 그래서 우린 이친구를 사용할꺼고 이친구는 주석을 풀어준다!

 

  3번 DBCP는 커넥션풀을 관리해주는 친구인데 우리 실습에는 아직 사용안할 것이기 때문에 주석상태로 둔다.

 

  4번 MYSQL 설정은 MARIA DB 설정에서 사용하기 때문에 주석을 풀어줄 것이다.

 

  5번은 ORACLE DB를 쓸꺼냐는말하고 같은데 우린 무료 RDBMS인 MARIA DB를 사용할 것이기 때문에 그냥 주석으로 둔다!! 그럼 코드를 함 수정해보자!

 

 

  그럼 이런모습이 된다. 간단하게 보면 다주석하고 저 log4jdbc와 mysql 이 dependency만 가져가겠다는 것이다.

<!-- Maria DB -->
<dependency>
	<groupId>org.mariadb.jdbc</groupId>
    	<artifactId>mariadb-java-client</artifactId>
    	<version>2.4.1</version>
</dependency>

<!-- Apache Baics Data Source -->
<dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.3</version>
</dependency>

  그리고 마리아 DB를 사용하기 위해서 마리아 DB Dependency 와 아파치 BasicDataSource를 사용하기위한 라이브러리도 필요하다. 위 두 소스를 추가해주자.

 

 

 

 

  짜잔 맨 아래에 두개 추가해줬당! 혹시 오타나 헷갈리는 사람이 있을수도 있으니 111번~164번줄 까지 코드를 첨부해 주겠다! 아 그리고 코드를 추가하면 꼭 저장을 해주자!

 

        <!-- <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>2.3.2</version>
        </dependency> -->
        
        <!-- mysql이나 oracle DB 사용시 아래 설정 추가 -->  
        <dependency>
            <groupId>com.googlecode.log4jdbc</groupId>
            <artifactId>log4jdbc</artifactId>
            <version>1.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        
        <!-- <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency> -->
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.31</version>
        </dependency>

        <!-- <dependency>
            <groupId>ojdbc</groupId>
            <artifactId>ojdbc</artifactId>
            <version>14</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc-14.jar</systemPath>
        </dependency> -->
       
       <!-- Maria DB -->
		<dependency>
			<groupId>org.mariadb.jdbc</groupId>
		    	<artifactId>mariadb-java-client</artifactId>
		    	<version>2.4.1</version>
		</dependency>
		
		<!-- Apache Baisc Data Source -->
		<dependency>
		        <groupId>commons-dbcp</groupId>
		        <artifactId>commons-dbcp</artifactId>
		        <version>1.3</version>
		</dependency>
		
	</dependencies>

 

5. context-datasource.xml 수정

 

 

 

  자 그럼 다시 파일찾기(Ctrl + R)를 눌러 context-datasource.xml 을 검색해주자.

 

 

 

  자 이런화면이 나올텐데 7번 부터 10번줄은 주석처리를 해준다. 그리고 한 12번줄정도에 저 코뭉텅이 하나를 추가해준다. 추가하는 곳에 담기는 내용은 내 로컬 서버의 접속 데이터베이스 명과 접속 계정에 대한 정보가 담긴다.

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="org.mariadb.jdbc.Driver"/>
        <property name="url" value="jdbc:mariadb://127.0.0.1:3306/cp_service_db" />
        <property name="username" value="root"/>
        <property name="password" value="비밀번호"/>
    </bean>

 

  소스는 여가다 첨부했당 ㅎㅎ. property별로 보자면 일단 url은 접속주소인데 우린 로컬 DB(내컴퓨터)에 접속할꺼니 127.0.0.1(=localhost)는 가만히 두고 :3306이 붙은건 포트이름이다. 바뀔 부분이라면 3306/ 뒤에 접속할 데이터베이스의 테이블 명을 써주면된다. 나는 로컬DB에 저 cp_service_db라는 테이블이 있기 때문에 저렇게 썻다. username은 보통 관리자니까 root을 입력하면 되고 비밀번호는 자기가 지정했던 관리자 비번을 입력하면 끝~ 그리고 저장을 눌러주자.

6. 필요없는 기존 소스파일 삭제

 

 

 

 

  이제 사용하지 않는 기존 소스파일들은 삭제할 것이다. 삭제할게 더 있을텐데 일단 안전빵으로 저 셋트만 삭제하자. 보통 스프링에선 Controller, Service, SeriviceImpl 파일이 세트로 같이 다닌다는 것을 알고 있음 될 것 같다.

 

- EgovSampleServiceImpl.java

- SampleDAO.java

- SampleMapper.java

- EgovSampleService.java

- SampleDefaultVO.java

- SampleVO.java

- EgovSampleController.java

- context-sqlMap.xml

- excample 폴더

 

  위 10개의 파일들은 다 지워주자 필요없다. 삭제는 간단하다 해당 파일명을 클릭하고 Delete버튼을 눌러주면 된다.

 

 

  이런 화면이 뜨는데 그냥 OK를 눌러주자.

7. sql-mapper-config.xml 생성

 

 

 

 

  자 6번 과정에서 보면 example 폴더 밑에 sql-mapper-config.xml 이라는 친구가 있는데 아까 지웠기 때문에 날아갔다 ㅎㅎ 그래서 새로 추가해줘야한당 ㅎㅎ

 

 

  자 sqlmap에서 오른쪽 마우스를 눌러주고 New - Other 버튼을 클릭한다.

 

 

  자 검색창에 XML을 입력하고 나오는 결과중에 XML File 이라는 친구를 누르고 NEXT!

 

 

  파일명을 "sql-mapper-config.xml"으로 설정하고 Finish 버튼을 눌러주자.

 

 

  자.. ㅎㅎ 아무것도 없는 파일이 생겼다..귀찮으니까 소스를 떄려박아주자.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
	<settings>
		<setting name="mapUnderscoreToCamelCase" value="true" />
		<setting name="jdbcTypeForNull" value="NULL" />
		<setting name="callSettersOnNulls" value="true" />
	</settings>
    <typeAliases>
		<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
    </typeAliases>
</configuration>

 

  추가 하는게아니고 저 파일 내용 전체지우고 걍 저거 전체 복붙하면 된다. 여기 sql-mapper-config 파일의 역할은 머 쉽게 말하면 DB에서 데이터들을 이쪽 JAVA를 사용하는 전자정부프레임워크(스프링)에서 알아먹게 하려면 어떤 설정들이 필요할 것이다.

 

  왜냐면 엄연히 다른 시스템이니까, 데이터 베이스와 여기 JAVA 프로젝트는 완전다르다. 그 알아먹게 하는 과정을 Mapping 이라고 하는거라고 생각하면 된다. 매핑이라고 하면 좀 어려운가? 그니까 이런거다, 데이터베이스가 데이터 들을 어떻게 잘 추출은 했다. 그래서 뭐 DB에서 이해할 수 있는 데이터 뭉탱이들이 나왔는데.. 이거 JAVA 너네 어떻게 이해할래..? 이런 의문을 가지다가 JAVA가 음..그럼 너가 나한테 데이터를 ~이렇게 주면 내가 이해해먹을 수 있어!! 하고 서로 이해할 수 있게 맞춰주는것이고, 뭐 매핑보다는 매칭이 더 이해가 잘 될것이다.

 

  아무튼 DB와 JAVA사이에 이렇게 서로 정보들을 이해시키는 과정인 Mapping 과정이 있는데 이걸 어떤식으로 할지 설정을 하는 파일이 이파일이라고 생각하면 된다.

 

  자 셋팅부터 함 보자, 보니까 Camel표현식을 쓰기로 되어있다. 아주 예전에 Camel 표현식을 한번 설명한 적이 있는데 그걸 쓴다는거고, Null 처리는 어떻게할껀지 정도가 나와있다. 그리고 자료형으로 뭘 쓸껀지 머 이런것도 있다. 전자정부 프레임워크에서 사용하는 egovMap 이라는 자료형을 사용한다는 것이다.

 

  머 여기는 이해못해도 되기 때문에 이해하기 싫으면 걍 복붙하고 저장 ㄱㄱ

8. context-mapper.xml 수정

 

 

 

  자 그럼 다시 파일찾기(Ctrl + R)를 눌러 context-mapper.xml 을 검색해 열어주자.

 

 

  보면 이렇게 생겼을텐데 저기 configLocation, mapperLocations 프로퍼티를 주석처리해준다. 잘 보면 어느 경로에서 Config, Mapper 파일들을 읽어올꺼냐는데 저기 example폴더는 우리가 날려버러렸기 때문에 새로 지정해줘야한다.

		<property name="configLocation" value="classpath:/egovframework/sqlmap/sql-mapper-config.xml" />
		<property name="mapperLocations">
			<list>
				<value>classpath:/egovframework/sqlmap/***/*.xml</value>
			</list>
		</property>

 

  경로를 새로 지정하는 코드는 위와 같다. 한 11번째줄 쯤 적절한 곳에 넣어주자. 물론 bean 태그 안에 있어야한다.

 

 

  자 1번 박스를 보면 아까 위에서 말한데로 주석처리 해줘서 지워줬고, 2번 박스를 보자, 11번줄을 먼저보면 classpath가 우리가 아까 7번에서 만들었던 경로로 바뀐걸 볼 수 있다.

 

  12번째 줄 mapprtLocations 프로퍼티를 보면 한줄로 작성된게 아니라 List로 쪼개놨다. 이유는 확장성을 위한건데 경로가 sqlmap/***/*.xml 이런식으로 잡혀있다. 여기서 ***은 "어떤 폴더" 정도로 해석하는 특정되지 않은 폴더이다. 즉, 어떤 폴더 아래있는 모든 xml파일을 보겠다는 것이다.

 

  이렇게 ***(어떤 폴더) 단위를 만든이유가, 나중에 쿼리들을 작성할때 기능에 맞는 쿼리들을 모아놓는게 좋기때문에 저기에 fwd 폴더를 만들어 포워딩에 필요한 쿼리들을 보관하고, 머 예약이면 rsm폴더를 만들어 그밑에 쿼리들을 보관하면 각 기능별로 쿼리 관리가 유용해지니 이렇게 했다. 어려우면 그냥 넘어가도 된다. 크게 중요한 것은 아니다. 결론만 말하자면 sqlmap 폴더밑에 모든 폴더에 있는 모든 xml파일을 mapper파일로 불러오도록 설정했다 ㅎㅎ.

9. 프로젝트 Clean (완전 새로 빌드)

 

  자 이제 마리아 DB연동이 된건고, 서버를 새로 돌려야하는데 변경된 파일들이 많기 때문에 안전빵으로 프로젝트 Clean을 진행해주자.

 

  Project Clean 기능은 이미 만들어진 target 파일 등 이미 만들어진 잡파일들을 다 삭제해줌으로써 프로젝트 빌드시 예전자료 대충 가져와서 만드는게 아닌, 진짜 내가 가진 파일들로 처음부터 빌드 할 수 있게된다.

 

 

  자 Clean 하려는 프로젝트를 선택하고(1) 상단에 Project(2) 메뉴를 누른 뒤 Clean(3) 버튼을 눌러주자

 

 

  저기 Clean all Projects 가 체크되어 있기 때문에 모든 프로젝트가 정리된다. 머 풀고 밑에서 하나씩 골라줘도 되는데 플젝이 몇개없고 가벼운 플젝이니 그냥 Clean을 해준다.

 

 

  5시 방향 구석을 보면 Clean이 진행되는게 보인다. 저기에 뭐 뜨는게 다 없어지면 Clean이 완료된 것이다.

 

10. Server Run / 중간 점검

 

  자 이정도까지만 해도 내 소스파일에 많은 변화가 있었으니, 오류없이 잘 됐는지 보기위해 한번 서버를 Run해보고 http://localhost:8080/reqUrl.do해당 요청을 보냈을때 다른 페이지로 정상적으로 포워딩 하는지 보자.

 

  잘 작동한다면 지금까지 문제가 없는 것이다.기존 Sample파일은 암세포 도려내듯이 살짝잘라서 버려줬고 내 파일들만 정상적으로 남아있는 것이다. 프로젝트 파일내에 자꾸 sample 머시기 파일들이랑 기본 예제 관련 파일들이 많아서 내 프로젝트인데도.. 중고차를 산 느낌처럼 없애고 싶었는데 자 도려낸 것 같다.

 

  만약 여기서 서버 Run이 안돼거나 우리가 만든 reqUrl.do가 실행되지 않는다면 MariaDB에 접속을 못했거나 Sample예제 파일을 도려내면서 먼가 충돌이 일어난것이다. 내가 아는선에서 도와줄테니 댓글에 남겨주길 바란다.

 

  일단 글이 너무 길어져서 데이터 조회 테스트는 못썻는데 다음 포스팅에서 알아보자!

 

#스프링 #전자정부프레임워크 #샘플예제 #Sample #기본예제 #마리아DB #mariaDB #연동 #완전히 #암수술 #마이바티스 #MyBatis

 

반응형
  1. 오류 ㅠㅠ... 2021.04.08 15:44

    심각: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSession' defined in file [C:\egov\eGovFrameDev-3.10.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\egovBoardProject\WEB-INF\classes\egovframework\spring\context-mapper.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\egov\eGovFrameDev-3.10.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\egovBoardProject\WEB-INF\classes\egovframework\sqlmap\example\sql-map-config.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 124; 외부 DTD: accessExternalDTD 속성으로 설정된 제한으로 인해 'http' 액세스가 허용되지 않으므로 외부 DTD 'sql-map-config-2.dtd' 읽기를 실패했습니다.
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1630)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:737)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4705)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5171)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:\egov\eGovFrameDev-3.10.0-64bit\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\egovBoardProject\WEB-INF\classes\egovframework\sqlmap\example\sql-map-config.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 124; 외부 DTD: accessExternalDTD 속성으로 설정된 제한으로 인해 'http' 액세스가 허용되지 않으므로 외부 DTD 'sql-map-config-2.dtd' 읽기를 실패했습니다.
    at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:595)
    at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:475)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1688)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1626)
    ... 21 more
    Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 124; 외부 DTD: accessExternalDTD 속성으로 설정된 제한으로 인해 'http' 액세스가 허용되지 않으므로 외부 DTD 'sql-map-config-2.dtd' 읽기를 실패했습니다.
    at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:263)
    at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:127)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:80)
    at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:592)
    ... 24 more
    Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 124; 외부 DTD: accessExternalDTD 속성으로 설정된 제한으로 인해 'http' 액세스가 허용되지 않으므로 외부 DTD 'sql-map-config-2.dtd' 읽기를 실패했습니다.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:261)
    ... 27 more
    라고 에러가발생하는데 구글에 검색해보니 DTD 관련 오류인것 같은데... 원래 egov의 sql-mapper-config.xml이랑 같은 내용으로 DOCTYPE을 입력했는데 왜 이 프로젝트에서만 이런 오류가 발생하는거죠?

    • 김진호 2021.11.24 14:31

      저도 동일한 오류네요 ㅎㅎ 내용대로 두번 다시 해 봤는데 동일한 상황이라... 뭔가 아직 맞게 안된 상태인 거 같아요... 이후에 해결됐습니다. mybatis ibatis 설정변경했나... 그런데 암튼 여기 내용들 따라하면서 해결되네요

    • 저는 2021.12.24 15:25

      example 폴더 삭제하고 해보세요
      sql-mapper-config.xml 파일 경로문제일꺼에요

  2. 강카 2021.05.11 17:03

    server run돌리면 하얀 웹화면과 함께 아래와 같은 콘솔이 나오는데 무슨 문제인 건가요?

    2021-05-11 16:49:07,733 WARN [org.springframework.web.servlet.PageNotFound] No mapping found for HTTP request with URI [/Blog/egovSampleList.do] in DispatcherServlet with name 'action'

    • 으엄으엄 2021.05.31 10:33

      저도 같은 에러입니다...해결하셨나요
      -> 해결
      알고보니 index.jsp 에서 egovSampleList.do를 참고하더라고요. 이걸 reqUrl.do로 변경해줬습니다.

  3. 찰스 2021.07.29 08:43

    '-. DB 연동 에러 문의

    [ 작성 코드 ]
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="fwd">
    <select id="selectTargetUrl" parameterType="cpservice.fwd.service.FwdVO" result Type="egovMap">
    /** selectTagetUrl (fwdSql.xml) 마스터코드 목록 조회**/
    SELECT PM.SEQ_NO
    ,PM.URL_STR
    ,PM.DISC_STR
    ,PM.USE_YN
    FROM prd_mst PM
    WHERE PM.SEQ_NO = #{reqParam}
    </select>
    </mapper>

    여기 중에서 "<select id="selectTargetUrl" parameterType="cpservice.fwd.service.FwdVO" result Type="egovMap">" 구문에서 에러가 나는데 알수가 없네요.

    Attribute name "result" associated with an element type "select" must be followed by the ' = ' character.

    이러한 에러가 나면서 원인을 모르겠네요.
    시간 되실 때 답변 부탁드립니다.

  4. asdf 2021.09.06 12:47

    sql-map-config.xml 파일에서 ibatis 주소가 이제는 접속되지 않는 주소입니다. "http://ibatis.apache.org/dtd/sql-map-config-2.dtd" 로 수정해주셔야 하고
    context-mapper.xml파일에서 mapperlocations 부분의 주소가 classpath:/egovframework/sqlmap/example/sample/***/*.xml처럼 기존 샘플 xml파일을 못찾게 해줘야 정상작동 합니다. 다음 강의에서 mapper xml file을 만들어야 하니 저는 그 파일이 들어갈 경로를 지정해놓았습니다
    mapper xml file의 정의를 확인해보시기바랍니다.

반응형

 

https://extsdd.tistory.com/103

 

[Maria DB] 마리아 DB 10.5 다운 및 설치 / 서비스 확인 / 스프링 Spring

스프링 프로젝트에 Maria DB를 사용하기 위해서 설치해보자! Maria DB는 MYSQL DB개발자들이 나와서 만든 "무료" 오픈소스 DB라고 생각하면 된다! 성능이 뛰어난 Oracle, MSSQL은 라이센스가 없어 우리가 사

extsdd.tistory.com

 

저번에 마리아 DB 설치를 했으니 이제 접속을 해보자!

1. HeidiSQL 접속

 

  DB접속툴로 HeidiSQL을 사용한다. 따로 설치는 안해도 된다. 저번에 마리아 DB를 설치할때 같이 됐을 것이다. 윈도우키를 눌러 "Heidi"를 검색해보자

 

 

설치된 앱이 검색된다 실행해주자

 

 

이 화면이 나올텐데 접속 세션이 없으니 새로 생성해주자 7시방향에 신규 버튼을 클릭!

 

 

  기본적으로 위에 호스트 IP가 127.0.0.1(Localhost)로 설정되어있으니 자기 자신의 컴퓨터라는 뜻이다. 그리고 사용자 root는 관리자 권한이고 우리가 관리자니 root 계정으로 접속해보자. 자 따로 만진게 없으면 1번 항목에 있는 비번만 입력해주면 된다.

 

그리고 2번 저장버튼 클릭후 3번 열기를 눌러보자!

 

 

자 이런 화면이 나타났다면 본인 컴퓨터에 설치한 Maria DB 접속에 성공한 것이다.

 

 

 

이후 쿼리는 1번 쿼리탭을 열어 2번 공간에 작성해서 돌려보면 된다

 

#마리아DB #MariaDB #접속 #HeidiSQL #세션 #연결

 

 

 

반응형
반응형

 

스프링 프로젝트에 Maria DB를 사용하기 위해서 설치해보자! Maria DB는 MYSQL DB개발자들이 나와서 만든 "무료" 오픈소스 DB라고 생각하면 된다!

 

성능이 뛰어난 Oracle, MSSQL은 라이센스가 없어 우리가 사용하지 못하니 무료 DB를 사용하자! 우리같이 뭐 간단한 DB 조회는 크게 성능차이를 체감하지 못할것이니 그냥 사용하면 된다!

 

1. 설치파일 다운

 

https://downloads.mariadb.org/

 

Downloads - MariaDB

 

downloads.mariadb.org

 

마리아 다운 페이지로 들어가보자.

 

 

최신버전으로 다운버튼을 눌러주자. 10.5버전!

 

 

자 본인 OS 아키텍쳐에 맞게 .msi 파일로 받아주면 된다. 난 윈도우 64비트를 사용하니 64bit 다운파일 클릭!

 

 

  그럼 머 이런 페이지로 넘어왔다가 저 페이지에서 한 20~60초 정도 기다리면 회원가입 페이지로 넘어가는데 나는 그냥 파일만 받을것이기 때문에 저 here버튼을 눌러 파일을 다이렉트로 다운받아주자.

 

 

뚜뚠! 파일 다운완료했으니 설치해주자.

 

 

자 쭉쭉 넘어가자

 

 

1. root(관리자) 계정의 비밀번호를 설정해주자

2. 기본 문자열셋을 UTF-8로 설정할 거냐는 물음에 체크해주자.

3. 다음으로 넘어가고

4. 이제 DB서비스가 돌아갈텐데 그 서비스의 이름을 지정할 수 있다. 난 그냥 뒀다.

5. DB포트도 설정할 수 있는데 3306이 국룰이기 때문에 그냥 뒀다.

6. 버퍼 사이즈인데 그냥 뒀다.

7. 다음으로 넘어가고

8. 인스톨을 해주자.

 

 

인스톨 완료 ㅎㅎ

 

설치 확인

 

 

 

  자 윈도우키를 누르거나 시작버튼을 눌러서 검색창을 활성화 시키고 "MY"라고 검색하면 MySql Client (MariaDb 10.5 (x64))라는 프로그램이 설치됐당. 그걸 실행해보자.

 

 

DB root 계정 접속 비번을 묻는데 아까 설정한 비번을 치고 엔터를 눌러주자.

 

 

접속에 성공했다 ㅎㅎ 테이블을 한번 보자!

"show databases;" 를 입력하고 엔터를 눌러보자

 

 

뚜둔! 정상적으로 데이터 베이스 조회에 성공했다. 머 여기서 크게 할건 없지만, DB가 동작하고 있다는 것이다..

 

서비스 구동 확인

 

  자 이제 내컴퓨터가 켜지면 눈에는 보이지 않지만 뒷단에서 Maria DB서비스가 돌고 있을 것이다. 이걸 어디서 확인하는지 알아보자.

 

 

먼저 윈도우 키를 누르고 "서비스"를 검색해보자 그럼 앱이 검색되는데 엔터버튼을 눌러 실행!

 

 

  그럼 서비스들이 뜰텐데 Maria DB를 찾아보자. 아까 우리가 설정한 서비스 이름으로 등록된다. 1번을 보면 지금 실행중인 것으로 나타난다. 만약 Maria DB서비스를 끄고 싶으면 해당 줄을 오른쪽마우스하고 중지 혹은 일시중지를 눌러주면 된다.

 

  시작유형도 보면 자동으로 되어있는데 이건 시스템 부팅시 자동으로 서비스를 동작시키겠다는 것이다. 본인이 수동으로 키고 끄고 싶으면 똑같이 오른쪽마우스를 눌러 설정해주면 된다.

 

#스프링 #마리아DB #mariaDB #설치 #무료DB #RDBMS #스프링 #서비스 #확인 #다운 #다운로드

 

 

 

 

반응형

+ Recent posts