본문 바로가기
반응형

[DataBase]22

LocalDateTime의 데이터가 9시간 차이남 java에서 찍어보면 아래와 같이 현재 시간이 찍힙니다. expires_at : 2020-12-19 20:44:13 issued_at : 2020-12-19 20:44:14 //Java에서 찍어봤을때나오는데이터 { "expires_at": { "date": { "year": 2020, "month": 12, "day": 19 }, "time": { "hour": 20, "minute": 44, "second": 13, "nano": 0 } }, "issued_at": { "date": { "year": 2020, "month": 12, "day": 19 }, "time": { "hour": 18, "minute": 44, "second": 14, "nano": 0 } } } 하지만 DB에 들어간 데이터는.. 2020. 12. 19.
Unblock with 'mysqladmin flush-hosts' ERROR 1129 (00000): Host 'xx' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'mysql에서 원격지의 IP를 블락시켰다는 내용- 원격 서버의 MySQL 3306 포트가 살아있는지 검사할 때 단순히 커넥션을 한 후 close하게 되면MySQL은 비정상적인 접속으로 판단하여 해당 IP를 블럭킹할 수 있다.mysql이 아닌 리눅스에서 $mysqladmin flush-hosts -uroot -pEnter password:*****이렇게 로그인해주면 해결됨.추가로 비정상적인 접속에 대한 요청을 카운트를 하는데 max_connect_errors 변수에서 지정한 값을 넘으면 블럭킹을 한다. ma.. 2018. 2. 19.
gorup by rollup(xxx, yyy)시 소계, 합계 구분하기 gorup by rollup(xxx, yyy)시 소계, 합계 구분하기 오라클에서 gorup by rollup(xxx, yyy)을 할 때 xxx나 yyy가 null이거나 empty일경우 소계와 합계 구분이 쉽지 않다. 오라클에서 null과 empty를 모두 null로 처리하는 것이 엄청 짜증난다. 이런경우 Grouping() 혹은 Grouping_id() 함수를 사용하면 쉽게 구분할 수 있다. select xxx, yyy, Grouping_id(xxx, yyy) AS group_gubun from tttgroup by rollup(xxx, yyy) group_gubun이 0,1,3으로 떨어지는 데 0은 데이터를, 1은 소계를, 3은 합계를 반환하는 row이다. by. 조조나리 2017. 6. 14.
mysql에서 테이블 레코드수, 용량 확인 SELECT table_name, table_rows, round(data_length/(1024*1024),2) as 'DATA_SIZE(MB)', round(index_length/(1024*1024),2) as 'INDEX_SIZE(MB)', TABLE_COMMENTFROM information_schema.TABLESwhere table_schema = '디비명'GROUP BY table_name ORDER BY table_name ASC 2017. 6. 2.
마이바티스 이용시 insert into select 마이바티스 이용시 insert into select를 하면 "; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다" 00933에러를 보게된다. INSERT INTO table_name (test)(select test from test) INSERT INTO table_name (test)(select test from test) insert를 update로 바꿔 주면 된다. by. 조조나리 2017. 5. 21.
서브쿼리 소수점 문제 발견 서브쿼리로 다른 테이블의 소수을 select 해오는 서브쿼리를 날렸을때 결과가 이상하게 나온다. 실제 merchant 테이블에는 0.04 데이터를 가진 row 1개만 있다. frg_charge의 타입은 float이다. 쿼리를 날리면 이상없이 가져오지만 서브쿼리로 가져오면 이상하게도 소수점 자릿수가 늘어나면서 값이 달라진다. 무려 15자리가 추가되었다. float나 double의 경우 2진수로 저장되고 2진수로는 10진수의 표현을 정확하게 표현할 수 없다. 이때 소숫점을 10진수로 저장하면 되는데 데이터타입을 DECIMAL로 변경해주면 된다. 자세한 내용은 아래의 주소에 다른분이 잘정리해놓았다. https://honux77.wordpress.com/2014/06/12/mysql%EC%97%90%EC%84%.. 2017. 2. 22.
Insert시 Key 관련 에러 - Error getting generated key or setting result to parameter object. Insert시 Key 관련 에러 - Error getting generated key or setting result to parameter object. #Error[10:50:53,082] 10:50:53 [http-bio-8081-exec-10] DEBUG com.hanuri.helper.util.dao.MyBatisDaoImpl - org.springframework.jdbc.UncategorizedSQLException: Error getting generated key or setting result to parameter object. Cause: java.sql.SQLException: 지원되지 않는 기능입니다: getMetaData; uncategorized SQLException for.. 2017. 1. 16.
mysql과 oracle의 paging mysql과 oracle의 paging #mysqlLIMIT #{startRowNum}, #{endRowNum} mysql의 limit을 사용하면 보통 limit 0, 15 이런식으로 사용한다. 0은 어디서부터 읽을 위치를 나타내고, 15는 몇 row를 읽을 것인가를 나타낸다. 그래서 limit을 쓸데는 앞의 0만 0, 15, 30....이런식으로 증가하게 되면 0부터 15개, 15부터 15개, 30부터 15개 이런식으로 페이징처리를 도와준다. 하지만 오라클의 rownum을 사용하게 되면 보통 between을 사용하게 되는 기존의 것을 그대로 쓰면 rownum between 0 and 15 이런식으로 되서 처음1장만 제대로 되고 rownum between 15 and 15, rownum between 3.. 2017. 1. 13.
오라클 예약어를 DTO에서 사용하기 오라클 예약어를 DTO에서 사용하기 #Errormysql에서 사용하던 필드를 오라클로 이관했다. 하지만 오라클에서는 uid를 예약어로 잡아놓고있어서 필드이관시 자동으로 uid뒤어 언더바가 붙는다. uid_ 이걸 기존 소스에서 사용하려면 UID_ as uid 이런식으로 사용하게 되는데 그럼 "[Err] ORA-00923: FROM 키워드가 필요한 위치에 없습니다." 이런 에러가 뜬다. #해결alias를 ""로 묶으면 사용이 가능하다. uid_ as "uid" #참고 - 오라클 예약어목록 ACCESSADD *ALL *ALTER *AND *ANY *AS *ASC *AUDITBETWEEN *BY *CHAR *CHECK *CLUSTERCOLUMNCOMMENTCOMPRESSCONNECT *CREATE *CURREN.. 2017. 1. 12.
ERROR - ORA-00923: FROM 키워드가 필요한 위치에 없습니다. mysql -> oracle로 전환하면서 아래와 같은 에러가 났다. # ErrorCaused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-00923: FROM 키워드가 필요한 위치에 없습니다. ) #해결 : root-context.xml에 validationQuery에 From 구문이 빠져있었다. 추가해주면 된다. mysql에서는 SELECT 1 만해주면 되지만 오라클에서는 FROM DUAL을 해줘야 한다. FROM DUAL이 있다고 mysql에서 오류가 나는게 아니므로 양쪽에서 사용해도 된다. #참고 : DUAL테이블은 임시테이블로 테이블내에 어떠한 값이 있는건 아니다. #코드 SE.. 2017. 1. 11.
ojdbc maven 등록 라이선스 문제로 메이븐 중앙 레파지토리에 oracle ojdbc가 없다고 한다. 그래서 누군가가 따로 관리를 하는것 같다. http://maven.jahia.org/maven2/ 이곳을 관리하시는 분 감사합니다. 계속 부탁드립니다.. pom.xml에 하기와 같이 추가 orclehttp://maven.jahia.org/maven2/ com.oracle ojdbc6 11.1.0.7.0 출처 : http://stove99.tistory.com/25 2017. 1. 11.
mysql DB 마이그시 한글깨짐 DB 마이그시 한글이 깨지면 character set을 설정해주면 된다. 덤프뜰 때select * into outfile '/경로/파일명' character set utf8 from 테이블명 where 조건식; 파일로드할 때load data infile'/경로/파일명' ignore into table 테이블명 character set utf8; 2017. 1. 10.
mysql replication 에서 동기화 Error - 1062 mysql 중복 복제 에러 건너뛰기 show slave status; 명령어로 동기화가 깨진 걸 확인 할 수 있다.Slave_IO_Running: Yes Slave_SQL_Running: No -> 동기화가 꺠져 slave로의 역할을 할수 없게 되었다. mysql replication 에서 동기화가 깨질 때 1062 코드를 자주 볼 수 있다. Replicate_Wild_Ignore_Table: Last_Errno: 1062 Last_Error: Error 'Duplicate entry '1004' for key 1' on query. 해당에러 내용은 유일키의 중복으로 인한 replication Error로 slave 동기화가 깨진다. 1062 에러는 근본적으로 유일키의 중복을 방지 하는 방법을 사용해야한.. 2017. 1. 6.
[ERROR]host is blocked because of many connection errors unblock with 'mysqladmin flush-hosts' DB Block으로 인한 접속 제한 경고host is blocked because of many connection errors unblock with 'mysqladmin flush-hosts'max_connect 관련 설정보다 초과 시도시 발생 flush-hosts명령어를 실행하여 시도횟수 초기화 #/usr/local/mysql/bin/mysqladmin -u oasis -p flush-hosts 예방접속 제한 시도횟수를 늘려준다.#/usr/local/mysql/bin/safe_mysqld --user=mysql -O max_connect_errors=1000 by. 조조나리 2016. 4. 19.
랭킹쿼리 랭킹 구하기http://stackoverflow.com/questions/532878/how-to-perform-grouped-ranking-in-mysql 같은 등수http://blog.naver.com/neo_start/220219460122 2015. 8. 3.
[ERROR]Lock wait timeout exceeded; try restarting transaction 1205, 'Lock wait timeout exceeded; try restarting transaction' mysql> show processlist;+--------+------+--------------------+-------+---------+------+--------------+-+| Id | User | Host | db | Command | Time | State | |+--------+------+--------------------+-------+---------+------+--------------+-+| 306835 | root | localhost | dmsDB | Query | 3651 | updating | || 309090 | root | localhost | dmsD.. 2015. 6. 10.
CONCAT() 문자열 합치기 UPDATE ASETb=CONCAT('#', a)WHERE1=1 2015. 6. 8.
MySQL max connections 설정 Max connections 에러가 발생하면 페이지에 Too many connection가 나옵니다. 이는 mysql에서 동시 연결 가능한 클라이언트 수를 넘었기 때문이다. MySQL서버는 동시에 연결될 수 있는 클라이언트의 수가 기본으로 100명이다. 동시 접속자수를 변경하려면 my.cnf을 수정하고 MySQL서버를 재 시작하면 된다. 이런 에러의 원인으로는 다음과 같습니다. 1) mysql_connect()함수로 DB connect를 했다면 해당스크립트가 종료됨과 동시에 mysql_close()함수를 호출하지 않아도 자동으로 연결이 종료된다. 하지만, mysql_pconnect()함수는 해당스크립트가 종료된 후 mysql_close()함수가 호출되었더라도 연결이 끊어지지 않은 채로 계속 연결을 유지하.. 2015. 6. 5.
반응형