반응형

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/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통이라고 한다..ㅋㅋ DB통 새로 만들어!~ ㅋㅋㅋ ... 보통 이랬던거 같은데 뭐 프로젝트단위라고 보면 된다.

 

  내 DB 서버가 있고, 꼭 1개의 DB서버에서 1개의 프로젝트를 돌리란 법은 없다. 여러가지 DB통을 만들어 놓을 수가 있어서, 만약에 내가 유튜브 서비스와, 쿠팡 서비스를 돌리고싶다! 하지만 하나의 DB서버에 돌리고 싶다! 라고 하면 DB통을 2개 만들어 주면 된다. 다시 전문용어로 YOUTUBE 스키마와, COUPANG 스키마를 만들어 주면된다. 이제 좀 이해가 됐나..!? 그냥 프로젝트 단위라고 생각하면 된다.

 

  그럼 우리는 프로젝트 CP SERVICE이기 때문에 CP_SERVICE_DB 스키마(DB통)을 만들어보자!

1. 데이터베이스 (Database) 생성

 

 

 

  만들 세션선택후 오른쪽마우스 클릭하여 새로생성(2) 버튼을 클릭! 그리고 데이터베이스(3)을 눌러주자! 마리아 DB에선 스키마 보단 걍 데이터베이스라고 부르나보다.

 

 

CREATE DATABASE `cp_service_DB`

 

  자 데이터 베이스 이름을 지정하자! 보니까 대문자로 써도 어차피 다 소문자로 치환된다. 정했으면 확인!

 

 

  오웅 씌엣! 만들어졌당! 이제 프로젝트 단위의 데이터베이스(DB통)을 생성했으니 이제 이 프로젝트에서 사용할 테이블들을 추가해보자 방법은 비슷하다.

 

2. 테이블 Table 생성

 

 

 

  테이블을 만들 데이터베이스를 오른쪽클릭하고(1) 새로생성(2)버튼을 누른뒤 테이블(3)버튼을 눌러주자!

https://extsdd.tistory.com/102

 

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

 

extsdd.tistory.com

  일단 우리는 이 프로젝트 기준으로 DB를 만들 것이기 때문에 아래와 같은 테이블을 생성할 것이다.

 

 

 

  자 PRD_MST 테이블부터 생성해보자!

3. PRD_ MST

 

 

 

 

  1. 테이블 이름을 지정해주자

  2. 추가버튼을 눌러서 4개의 속성을 다 추가해준다.

  3. 추가한 속성들의 이름을 지정하고

  4. 데이터 유형을 지정한다.

  5. 길이를 정해준다! URL_STR에는 URL이 길게 들어갈 것임으로 넉넉히 300자를 두고, DISC_STR은 설명이니 50정도. 그리고 USE_YN은 Y혹은 N값만 다룰테니 2정도를 준다

  6. NULL허용을 체크하면 저기 속성은 안넣어도 되는 속성이 된다. DISC_STR은 해당 값에대한 설명인데 꼭 없어도 되니 NULL허용을 해주자, 나머지 3개 속성값은 꼭 NULL이 아닌 실제 값을 필요로 하게 된다. 만약 NULL을 넣으려고 시도하면 제약조건에 위배되서 삽입이 되지 않게 된다.

  7. SEQ_NO는 데이터를 추가할때마다 1~쭈르륵 올라가면 되니 더블클릭을 눌러서 AUTO_INCREMENT를 선택해주고 DISC_STR은 NULL허용을 해놨기 때문에 설정에서 최초값을 NULL로 주도록 하자

 

  다 됐으면 저장 버튼을 눌러주자!!!

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'
;

 

4. REQ_MST

 

 

 

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

  REQ_MAT 테이블도 대충~ 만들어 준다~ 좀 다른게 있다면 REQ_DATE의 형은 DATETIME형으로 해주자!

 

 

  그리고 저장을 해주자

 

 

  짜잔 ~ 테이블 생성이 완료 됐다. 그럼 이제 값을 하나 예시로 넣어보자!

 

 

5. PRD_MST 데이터 삽입

 

 

 

  자 데이터 삽입은 어려운거 없다. 탭들 뒤져보면 무슨 +모양처럼 생긴친구(1) 있는데 눌러주면 새창이 생기면서 저기다 작성할 수 있다. 작성해보자.

 

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

  위 쿼리를 복사해서 복붙하자! 그리고 F9를 누르면 전체 실행이 된다.

 

-START TRANSACTION

 

  보통 SELECT를 제외한 INSERT, DELETE, UPDATE 같은 DML을 사용할때는 MSSQL의 경우에는 begin tran을 걸고 쿼리를 돌린후 데이터가 제대로 됐는지 보고 정상이면 commit 명령어를 입력시켜 완전히 반영하고, 문제가 있으면 rollback 명령어를쳐 복구시키는데 마리아DB에도 역시 있다.

 

  BEGIN TRAN 명령어 대신 START TRANSACTION; 을 선언해주고 나머지 commit/rollback 방법은 같다. 일단 저건 내가 테스트해보고 그냥 넣는 데이터지만, START TRANSACTION하는 습관을 들이는게 미래를 생각하면 좋다. 잘못하다가 데이터가 다 지워지거나 이상하게 바뀌거나 할 수 있기때문에 연습이라도 꼭 해보자!

START TRANSACTION; -- 쿼리문 작성 COMMIT -- 반영 ROLLBACK -- 복구

 

  첫 INSERT라 설명을 좀 해봤구 우리 하던걸 계속 해보자

 

 

  콘솔창에는 이렇게 표시되며 잘 들어갔다는 메시지가 나온다.

 

 

  마지막에 SELECT문도 넣었기 떄문에 INSERT한 테이블을 조회한다. 보면 우리가 처음 계획했던 엑셀의 예시 데이터와 같음을 알 수 있다.

6. REQ_MST ..테이블 이름 변경

 

  REQ_MST 테이블은 마스터성 테이블이 아니라, 요청을 보낼빠다 보냇던 요청시간을 기록하는 Log성 데이터라서 미리 넣어줄 것은 없다..그런데 가만 생각해보니 테이블이름은 MST로 마스터성 정보를 담고있는 테이블인데..Log는 마스터성 정보가 아니잖아..?

 

  그렇다. 테이블 이름을 잘 못 지었다..

 

 

  바꿀테이블에 오른쪽 마우스를 클릭(1)하고 편집(2)을 눌러 3번 박스에 수정할 테이블명을 입력하고 저장(4)을 눌러주자!

 

 

  짜잔 테이블명이 바꼈당~

 

  여기까지 데이터 삽입하는 것에대해 알아보았다~

 

 

#마리아DB #무료DB #MariaDB #HeidiSQL #데이터베이스 #테이블 #스키마 #생성 #데이터 #삽입 #INSERT #STARTTRANSACTION #조회 #SELECT

 

반응형
반응형

 

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 #스프링 #서비스 #확인 #다운 #다운로드

 

 

 

 

반응형
반응형

스키마(Schema)의 정의

스키마는 DB의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술(Description)한 메타데이터의 집합이다.

스키마의 특징

① 데이터 사전에 저장되며 다른 이름으로 메타데이터라고도 한다.

② 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어 진다.

③ 시간에 따라 불변인 특성을 갖는다.

④ 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.

스키마의 3계층
① 외부 스키마
② 개념 스키마
③ 내부 스키마

  DBMS는 외부적 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태로 변경하고 이를 다시 내부적 스키마에 적합한 형태로 변환한다.

① 외부 스키마(External Schema) / 서브 스키마 / 사용자 뷰(View)

① 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것

② 전체 DB의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 함.

③ 여러개의 오부 스키마가 존재가능, 하나의 외부스키마에 여러 개의 응용 프로그램이나 사용자가 공용하는 것도 가능

④ 같은 DB에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.

⑤ 일반 사용자는 질의어(SQL)를 이용하여 DB를 쉽게 사용할 수 있음.

⑥ 응용 프로그래머는 COBOL, C 등의 언어를 사용하여 DB에 접근한다.

② 개념 스키마(Conceptual Schema) / 전체적인 뷰(View)

① DB에서 전체적인 논리적 구조로서, 모든 응용프로그램, 사용자가 필요로 하는 데이터를 종합한 조직 전체의 DB

→ 하나만 존재함

② 개체 간의 관계와 제약 조건을 나타내고 DB의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.

③ DB파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념 스키마를 의미한다.

④ 기관이나 조직체의 고나점에서 DB를 정의한 것이다.

⑤ 데이터베이스 관리자(DBA)에 의해서 구성된다.

③ 내부 스키마(Internal Schema) / 저장 스키마(Storage Schema)

① 물리적 저장장치의 입장에서 본 DB구조로, 물리적인 저장장치와 밀접한 계층이다.

② 실제로 DB에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 물리적 순서 등을 나타냄

③ 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마다

데이터베이스의 구성요소

① 개체 : 파일 처리 방식의 파일에서 레코드

② 속성 : 파일 처리 방식의 파일에서 필드(항목)에 해당되는 것으로 개체의 성질을 나타냄

③ 관계 : 개체와 개체 또는 개체와 속성 간의 관계

단어 노트

① 데이터 사전(Data Dictionary) : 모든 데이터 개체들에 대한 정보를 관리 하는 시스템으로 메타 데이터로 불림

② 메타 데이터(Meta-Data) : 대량의 데이터를 구조화한 데이터로 스키마가 일종의 메타 데이터라고 생각하면 됨

③ 인스턴스(Instance) : 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 값을 갖는 것

④ 질의어(SQL : structured query language) : DB에 접근하기 위한 언어

⑤ 데이터베이스 관리자(DBA : DataBase Administrator) : 데이터베이스 시스템을 원활하게 수행하도록 데이터베이스의 전체적인 관리 운영에 대한 최고의 책임을 지는 개인 또는 집단

 

 

 

 

반응형
반응형

DBMS(DataBase Mangement System)의 정의

① 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하고 DB를 관리해 주는 소프트웨어

② 기존 파일시스템이 갖는 종속성, 중복성문제를 해결하기 위해 제안된 시스템으로 모든 응용프로그램이 DB를 공유하게함

③ DB의 구성, 접근 방법, 유지관리에 대한 모든 책임을 짐

기존 파일시스템의 문제점
① 종속성
② 중복성

 

① 종속성으로 인한 문제점

응용프로그램과 데이터 파일이 상호 의존적인 관계에서는 파일이 변경되면 프로그램도 같이 변경해야한다.

② 중복성으로 인한 문제점

① 일관성 : 중복된 데이터 간에 내용이 일치하지 않는 상황이 발생해 일관성이 사라진다.

② 보안성 : 중복되어 있는 모든 데이터에 동등한 보안수준을 유지하기 어렵다.

③ 경제성 : 저장공간의 낭비와 동일한 데이터의 반복 작업으로 비용이 증가한다.

④ 무결성 : 제어의 분산으로 데이터의 정확성을 유지할 수 없다.

DBMS의 필수 기능
① 정의
② 조작
③ 제어

① 정의(Definition) 기능

① 저장될 데이터의 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능

② 데이터간의 관계를 명확하게 명세할 수 있어야 하며, 원하는 데이터 연산은 무엇이든 명세 할 수 있어야 한다.

② 조작(Manipulation) 기능

① 데이터 검색(Slect), 갱신(Update), 삽입(Insert), 삭제(Delete) 등을 처리하는 기능

③ 제어(Control) 기능

① 무결성 : 갱신, 삽입, 삭제가 정확하게 수행되어 데이터의 무결성을 유지하도록 제어함

② 권한 검사 : 정당한 사용자가 허가된 데이터만 접근하도록 보안을 유지하고 권한을 검사함

③ 병행 제어 : 동시에 여러 사용자가 데이터에 접근할 때 항상 정확성을 유지하도록 병행제어함

DBMS의 장/단점

장점

단점

ㆍ데이터의 논리적, 물리적 독립성이 보장됨

ㆍ데이터의 중복을 피할 수 있어 공간이 절약됨

ㆍ저장된 자료를 공동으로 이용할 수 있음

ㆍ데이터의 일관성을 유지할 수 있음

ㆍ데이터의 무결성을 유지할 수 있음

ㆍ보안을 유지할 수 있음

ㆍ데이터를 표준화할 수 있음.

ㆍ데이터를 통합하여 관리할 수 있음.

ㆍ항상 최신의 데이터를 유지함

ㆍ데이터의 실시간 처리가 가능함.

ㆍ데이터베이스의 전문가가 부족함

ㆍ전산화 비용이 증가함

ㆍ시스템이 복잡함

ㆍ대용량 디스크로 집중적인 접근으로 과부화 발생

ㆍ파일의 예비와 회복이

단어 노트

① 병행 제어(Concurrency Control) : DBMS가 여러 사용자가 동시에 DB에 접근하도록 여러개의 트랜잭션을 동시에 수행하는 것.

 

 

#정보처리기사 #정처기 #데이터베이스 #개념 #DBMS #파일시스템 #종속성 #중복성 #정의 #조작 #제어 #장단점

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts