본문 바로가기

plming

mysql - tcp6 로만 실행될 때? 도대체 어떻게 해야하는거냐...;;; netstat -nlt 를 해보면 tcp6 0 0 :::3306 :::* LISTEN tcp로 Listen 되는 3306은 어디가고...;;; 이렇게 되면, 원격에서 아무리 접속하려 해도... mysql -h ip ... ERROR 2003 (HY000): Can't connect to MySQL server on 'ip' (111) ubuntu에서 IPv6를 비활성화하는 방법을 써봤지만... (http://blog.saltfactory.net/disable-ipv6-on-ubuntu/) sudo cat /proc/sys/net/ipv6/conf/all/disable_ipv6 0 나오면... sudo vi /etc/sysctl.conf 내용 추가 후 저장 net.ip.. 더보기
Excel Upload - java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER Excel Upload를 처리하기 위해서 Apache POI - Download Release Artifacts : http://poi.apache.org/download.html 현재의 최신버전 3.17 을 사용했었다. poi-3.17.jar poi-ooxml-3.17.jar poi-ooxml-schemas-3.17.jar ※ Excel Upload를 처리하기 위해 추가로 cos.jar, commons-collections4-4.1.jar, xmlbeans-2.6.0.jar 파일이 더 필요하다. Windows 개발환경에서는 잘 되었으나 Ubuntu 에서는 아래와 같은 Exception을 맞았다. java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER org.apache.p.. 더보기
MySQL - ERROR 2002 (HY000): Can't connect to local MySQL server through socket 멀쩡히 잘 되던 MySQL이 MySQL Workbench에서도 접속이 잘 되는데... terminal에서 mysql을 실행하니 Error가 똭~ # mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) ls /var/run/mysqld 해봤더니... 아무것도 없네??? 휑~~ ;;; /etc/init.d/mysql restart 해봤지만 Fail 이 똭~ find / -name '*.sock' 로 해당 파일을 찾아봤지만 mysqld.sock은 찾을길이 없... 이리 저리 수소문 끝에... stop / start를 하나씩 실행했더니... 정상~ # service .. 더보기
MySQL - 시간 간격 계산 시간을 더할 때는 DATE_ADD( NOW(), INTERVAL 1 DAY ) 시간을 뺄 때는 DATE_SUB( NOW(), INTERVAL 1 DAY ) DAY 자리에는 초,분,시,일,주,달등의 분류들을 사용할 수 있다. MICROSECOND, SECOND, MINUTE, HOUR DAY, WEEK, MONTH, QUARTER, YEAR 시간의 차이을 계산할 때는 TIMEDIFF( 시간1, 시간2 ) ※ Oracle처럼 시간1 - 시간2 하면? SELECT 시간1 - 시간2 FROM DUAL; 숫자가 나오긴 한다. 시간1 : 2018-05-01 16:27:11 이고 시간2 : 2018-05-01 11:38:30 일 때 결과 : 48881 이 나온다. 이 결과의 의미는? 왜 이런 결과가? 시간을 단순 숫.. 더보기
Android Studio 3 - 자동저장 (auto save) 끄기 요즘엔 자동저장이 기본인지는 모르겠지만 이리 저리 개발스럽게 두들기고 있는데... 그걸 저장해버리면;;; (느낌상... 개발자가 기획하지 않은 것 같은 기능...;;) 설치하고, 개발중에 코드 잃고 울고 싶지 않다면... 자동 저장 기능을 꺼놓는게 좋을 듯 하다. 오늘도 무사하시길... 더보기
MySQL - Temp Table is full, 크기 조절 CREATE TEMPORARY TABLE xxx ... 임시로 생성한 테이블에서 아래와 같은 Exception 이 발생한다면? java.sql.SQLException: The table 'xxx' is full MySQL 환경에 설정된 heap size와 temp table size를 조절해야한다. * MySQL 재기동시 반영 /etc/mysql 에 있는 mysql.cnf 파일을 수정한다. !includedir /etc/mysql/mysql.conf.d/ 이런 식으로 환경설정 파일을 나눠놨다면... 해당 경로에 있는 mysql.cnf 파일을 수정한다. 원하는 크기로 설정하면 된다. max_heap_table_size = 256000000 tmp_table_size = 256000000 * 실시간으로 반영.. 더보기
MySQL - rownum, rank, SQL_CALC_FOUND_ROWS Oracle의 RANK() OVER 같은 결과를 만들어 낼 수 있는 SQL이다. 특정 Key1를 기준으로 해당 Key1내에서 Key2를 기준으로 순위를 만드는 SQL이다. (아래에서는 rnum을 기준으로, created에 따라서 순위를 만들고 있다.) SELECT * FROM ( SELECT a2.* , @rn := CASE WHEN @key1 != rnum THEN 1 ELSE @rn + 1 END AS rank , @rk := CASE WHEN @rn = 1 THEN 1 WHEN @key2 = created THEN @rk ELSE @rn END AS tmp_val , @key1 := rnum , @key2 := created FROM ( SELECT ... AS rnum , ... AS create.. 더보기
MySQL - Select한 값으로 Update 단순한게는 테이블과 테이블을 Join해서 특정 컬럼의 값으로 Update 시킬 수 있다. UPDATE TABLE1, TABLE2 SET TABLE1.COLUMN1 = TABLE2.COLUMN3 WHERE TABLE1.COLUMN2 = TABLE2.COLUMN4 ; UPDATE TABLE1 INNER JOIN TABLE2 ON TABLE1.COLUMN2 = TABLE2.COLUMN4 SET TABLE1.COLUMN1 = TABLE2.COLUMN3 ; UPDATE TABLE1 SET COLUMN1 = ( SELECT COLUMN2 FROM TABLE2 WHERE ... LIMIT 1 ) ; 복잡하게는 Matching되는 특정 값이 존재하지 않을 경우 ROW_NUM을 만들어서 Join 시킬 수 있다. UPDA.. 더보기
MySQL - 임의의 날짜값 생성 임의의 날짜를 설정해서 TEST 해야할 때 유용할 듯... 오늘에서 임의의 날짜를 빼고 시간, 분, 초를 임의의 난수로 채워서 날짜를 만들어낸다. STR_TO_DATE( CONCAT( DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL CAST(RAND() * 100 AS UNSIGNED) DAY), '%Y%m%d' ) , LPAD( CAST( CAST(RAND() * 23 AS UNSIGNED) AS CHAR ), 2, '00' ) , LPAD( CAST( CAST(RAND() * 59 AS UNSIGNED) AS CHAR ), 2, '00' ) , LPAD( CAST( CAST(RAND() * 59 AS UNSIGNED) AS CHAR ), 2, '00' ) ), '%Y%m%d.. 더보기
[MySQL] millisecond, microsecond 표시하기 Timestamp Type Column에 NOW() 든 CURRENT_TIMESTAMP() 든 값을 줘서 Insert/Update를 했지만... 기본적으로 DATE_FORMAT( NOW(), '%Y-%m-%d %H:%i:%s.%f' )를 사용했더라도 millisecond, microsecond 가 표시되지 않는다. 1. Column Type이 Timestamp(6) 으로 만들어져야 하고 2. 날짜값을 만들 때 NOW( 6 ) CURRENT_TIMESTAMP( 6 ) 이런 식으로 몇자리까지(0~6까지)의 소수 시간(fractional seconds precision)을 표시할 것인지 인자를 전달해야 한다. 기본값은 생략해도 되는지라... 더보기