반응형

DB이관 12

MariaDB 최신버전(10.6.14) 설치 및 기본 DB 스키마 이관(utf8mb3 -> utf8mb4)

최근 신규서버를 새로 세팅하면서 DB서버 의 경우 데이터는 대부분 안가져오지만 형태는 그대로 사용해야 했기에 신규 서버세팅을 하면서 스키마와 기타 트리거, 펑션, 프로시저, 뷰 등 껍데기만이라도 다 가져오면서 utf8mb3에서 utf8mb4로 변경하여 적용해야했다. 기본파일의 경우 MariaDB 공식 홈페이지에서 다운로드 받았다. mariadb-10.6.14-linux-systemd-x86_64.tar.gz 다운로드 주소 https://mariadb.org/download/?t=mariadb&o=true&p=mariadb&r=10.6.14 Download MariaDB Server - MariaDB.org REST API Release Schedule Reporting Bugs … Continue rea..

DB이관 2023.12.29

자바로 파일변환 및 쿼리문 txt생성!

##기존에 다른 동료가 하는 프로젝트에서 DB를 부분이관을 진행했는데 파일다운로드에 오류가 발생했다.. 알고봤더니 기존로직은 리눅스 서버에 파일업로드를 할 경우 한글파일이든 영어든 모두 임시의 값으로 변환되어 서버에 저장이되는데(ex 보통 안겹치기위해 날짜+randomString->20210915_abcdefg 와 같은형태) 한글로 가져와서 한글파일을 못찾는 사태가 발생했다. 모두가 그런게 아니고 새로 가져온부분만 안되기때문에 한글에대한 설정을 서버에 맞춰서 해보기보단 기존껄 자바에서 재 가공해서 넣기로함. 특정 폴더에 있는 파일만 오류를 발생시켰으므로 그 폴더에 있는파일 데이터만 Java에서 뽑아내고 SELECT * FROM table WHERE DELETE_YN = 'N' AND FILE_FOLDER..

DB이관 2021.09.15

JAVA – Value ‘0000-00-00’ can not be represented as java.sql.Timestamp 에러해결

갑자기 db데이터를 바꾼뒤 로그인하려는데 해당오류가 발생하였다. 동일한 상황을 겪은 사람의 블로그를 보고 해결했다. 해당페이지에서 convertToNull옵션값을 추가했더니 정상적으로 로그인이 됨. 지금 사용하는 db의경우 deldt 가 해당한다고 떴는데. 기본값을 null로 가지고있음에도 떴음. 기본값이 0000-00-00 00:00:00이 아님. ##의문점## 기본값이 설정 되어있는게 0000-00-00 00:00:00 값이 아닌경우인데도 해당 오류가 발생하니..참 알다가도 모르겠다. 1. 문제상황 > mysql의 DATETIME컬럼에 접근시 에러가 발생하였다. * 에러메시지 Value '0000-00-00' can not be represented as java.sql.Timestamp 2. 문제해..

DB이관 2021.09.15

MariaDB my.cnf 파일설정

캐릭터셋,인코딩관련 설정만 볼때 아래 명령어 사용 show variables like 'c%'; 각종설정 보는 명령어 show variables; 파일위치의 경우 리눅스 기준으로(그냥 apt-get이나 자동설치 방식일 경우) /etc/mysql/my.cnf 에 존재함 해당파일에 한번에 설정도 가능하고 각각 conf파일마다 설정도 가능함. Utf8 설정 [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] character-set-client-handshake = FALSE init_connect = "SET collation_connection = utf8_general_ci" init-connect = 'SET N..

DB이관 2021.09.15

MariaDB 데이터 insert오류관련 개인정리

Utf8일때 오류발생했던 부분정리했던 것들이다. 보통 다 UTF8로 덕지덕지 하기때문에 당연히 새로 설치한 MariaDB에 기본적인 설정값들 또한 utf8로 했었다.. 하지만 그게 문제가 될 줄이야..ㅠㅠ 결국 결론을 먼저 말하자면 utf8 --> utf8mb4 로모두 변경하였다. utf8mb4은 간단하게 utf8의 상위호환으로 보면된다. ##기타오류들## ID값이 TNGLAB 인 사용자가 2명 존재해서 PRIMARYKEY 관련해서 제대로 안들어가는듯함. 기본적으로 mysql은 대소문자 구별을 안하는형태임 Select * from member where id ='tnglab'; 수행한경우 pk값이 없을때 대문자,소문자 2개 다 나왔었음. `ID` varchar(60) binary NOT NULL COMM..

DB이관 2021.09.15

Oracle, mariaDB 차이점 정리

오라클에서 마리아DB로 이관하면서 아래에 정리된 차이점을 정말정말 많이 봤다.. Oracle과 MySql 쿼리문 문법 비교 Oracle에 익숙한 필자는.. 이번 프로젝트에서 생전 처음으로 MariaDB를 쓰면서 MySql 문법을 익혀야 했다. 지금부터 알게된 모든 차이점들을 하나씩 하나씩 차근차근 적어나갈 생각이다. 규칙은, 기준이 Oracle이고 그 비교되는 Mysql 문법을 아래에 적는다. 1. 공백치환 함수 ( NVL -> IFNULL ) Oracle : SELECT NVL('컬럼명', '') FROM DUAL; MySql : SELECT IFNULL('컬럼명', '') FROM DUAL; 2. 현재 날짜시간 Oracle : SYSDATE Mysql : NOW() 3. 날짜포멧 Oracle : TO..

DB이관 2021.09.14

Oracle With구문 ->Mysql 변환

처음에는 무조건 안되는줄 알고 with구문을 변경하려고 난리를 쳤었다.(ㅠㅠ내 시간) 해당 버전확인이 먼저 되어야할듯함. 8.0이후에서는 with구문을 동일하게 사용가능. MySQL 8.0 이전 버전에서는 WITH 구문이 지원되지 않기 때문에 WITH 구문을 변환하려면 다음 선택지 중 하나를 택할 수 있다. Temporary Table(임시 테이블) Derived Table Inline View 본 글에서는 inline view를 이용하여 Oracle WITH 구문을 변경해 볼 것이다. WITH 구문을 Inline View로 변환하는 예제 편의상 간단한 쿼리를 예제로 들었다. ℹ️Oracle WITH: WITH SAMPLE_WITH AS (SELECT ID FROM SAMPLE_TBL) SELECT A...

DB이관 2021.09.14

Oracle wm_concat -> mysql group_concat

##기존에 위와같은 종류의 함수를 사용해서 쿼리값을 한줄에 다 넣는게 있었는데 마리아DB에선 다른방법을 지원하기때문에 변환을 위해 찾아보았던 부분들이다## 필요에 의해 서로 다른 결과를 한줄로 합쳐서 보여줘야 할 경우가 있다. 전체 결과값을 가져와서 java 와 같은 프로그램 언어에서 for 문을 돌며 문자열을 붙여도 되긴 하지만 Select 쿼리를 던질때 결과값으로 합쳐져 있는 문자열을 받는게 더 편하다. select * from test ; type name fruit 수박 fruit 사과 fruit 바나나 fruit 사과 select type, group_concat(name) from test group by type ; type name fruit 수박,사과,바나나,사과 group_concat을..

DB이관 2021.09.14

Mriadb or mysql 대소문자 구분관련 정리

오라클에서 마리아DB로 이관을 준비하던 도중 동일한 이름으로 만들었고 사용하려던 도중에 오류가 발생해서 의아해서 찾아본 부분들이 존재했다. 바로 대소문자에 관련된 부분들! 1.오라클의 경우 따로 테이블명에 대한 대소문자 구분이 존재하지 않는다. 그러나 mysql류의 경우 설정으로 그걸 조절이 가능하다. 아래와같음 동일하게 맞춰주었다! 테이블명 대소문자 구분 여부 확인 및 세팅 변경방법 show variables like 'lower_case_table_names'; 위에서 해당 값이 0인지, 1인지, 2인지 확인해야 합니다. 제 서버에서는 0으로 설정되어있었는데요, 0일경우 --> 대소문자 구분함 1일경우 --> 대소문자 구분안함 위와 같습니다. 따라서 대소문자 구분을 하지않도록 하기위해 lower_ca..

DB이관 2021.09.14

MariaDB vs Oracle 데이터타입비교

##처음으로 DB이관을 수행하게되었을때 아무런 정보가 없이 주어졌다. 그래서 테이블 변환을 하면서 매칭될 타입이 어떤건지에 대한 이해가 가장 먼저 필요로 하여 아래부분들을 가져와서 원노트에 정리했었다!!## MariaDB / Oracle Datatype Mapping MariaDB(MySQL) 와 Oracle 데이터타입을 비교해야 할 일이 생겨서 정리하는 김에 블로그에도 정리한다. mysql oracle BIGINT NUMBER(19, 0) BIT RAW BLOB BLOB, RAW CHAR CHAR DATE DATE DATETIME DATE DECIMAL FLOAT (24) DOUBLE FLOAT (24) DOUBLE PRECISION FLOAT (24) ENUM VARCHAR2 FLOAT FLOAT I..

DB이관 2021.09.14
반응형