본문 바로가기
반응형

mysql13

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.
서브쿼리 소수점 문제 발견 서브쿼리로 다른 테이블의 소수을 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.
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.
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.
[KITRI] My SQL 기반의 VLDB(Very Large Database) 시스템 구축·관리 My SQL 기반의 VLDB(Very Large Database) 시스템 구축·관리하석재 강사/KITRI교재 : Real MySQL 개발자와 DBA를 위한 Real MySQL국내도서저자 : 이성욱출판 : 위키북스 2012.05.08상세보기첫 날 오전VL-DBMSPartitioning - 시스템 내부(mysql DB)Sharding - 시스템 외부(서드파티) R DBMSScalability - 확장성Availability - 가용성 정규화(Normalization)중복된 정보를 최소화 해라쪼개라. cf. 역정규화(Denormalization) : 필요한 정보를 중복시켜라 (ex. 댓글 갯수를 저장하는 컬럼) cf. PK cf. FK필요하면 테이블을 합쳐라(JOIN)원하는 정보를 찾아서 출력해라만들어진 큰 .. 2017. 1. 8.
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.
우분투에 Mysql 세팅하기 참고 : http://jaesu.tistory.com/entry/ubuntu-mysql-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0 가비아 클라우드 0.서버 - Linux Ubuntu 13.10 x64 - 패스워드 변경 # $ sudo passwd root //apt 업데이트$ apt-get update 1). mysql 검색 $ sudo apt-cache search mysql-server 2). mysql 설치 $ sudo apt-get install mysql-server-5.6 설치확인$ sudo netstat -tap | grep mysql 재시작하기$ sudo /etc/init.d/mysql restartMysql 시작 .. 2015. 8. 14.
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.
MySql -> Oracle로 DB연결전환하는 방법 1. DB연결 관련 수정 부분.// jdbc연결을 oracle로 변경. localhost는 아이피로 대체가능. String jdbcDriver = "jdbc:oracle:thin:@localhost:1521:XE";// 오라클 db사용자 아이디String dbUser = "dev11id";// 오라클 db사용자 패스워드String dbPass = "dev11pw";conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass); 2. 1521은 Oracle 기본 포트 3. 오라클 연결 관련 jar파일을 복사해야 할 위치/webContent/WEB-INF/lib/ojdbc14_g.jar/webContent/WEB-INF/lib/ojdbc14.jar 4. 오라.. 2014. 6. 23.
my-sql 데이터 입력시 오류 (기본키 값 중복 오류) jsp와 DB를 연결하여 자료를 입력하는 과정에서 아래와 같은 에러가 발생함. DB와 JSP파일을 연결하여 data를 삽입 하는 과정에서 에러가 발생. Duplicate entry '1' for key 'PRIMARY' 프라이머리키(기본키)인 id에 1이라는 중복 값을 입력하였기 때문에 에러가 발생 함. 처리 - 중복 입력 금지 처리 추가 * 이상 조조나리 였습니다. ㅋ 2014. 5. 20.
반응형