반응형

MySQL 18

MySQL Window 설치 삽질 후기...

AWS에 있는 Aurora MySQL에 접속하기 위해 MySQL Workbench를 깔아 접속을 하려 하였지만 실행되자 마자 프로세스가 죽어 버리는 문제 발생. 여기 저기서 들은 말로는 .NET Framework가 설치되어 있지 않아서라는 말을 듣고 설치하려 했지만 이미 최신 버전이 깔려 있는 상태... 그래서 그냥 Workbench 말고 MySQL을 통으로 설치하려 함. 통으로 설치 하고 마지막에 뭔가 Config를 처리하는 과정에 오류 발생. 아래와 같은 이미지가 뜸 삽질은 시작 됨. 찾아 보니 컴퓨터 이름이 한글일 경우 안된다고 해서 찾아 보니 회사에서 기본으로 설정해 둔 컴퓨터 이름이 '내이름-PC' 였음 ㅠㅠ 그래서 이름 변경 후 다시 설치 하였지만 동일한 문제... MySQL 관련된 내용을 다..

Develop!/MySQL 2020.03.30

Springboot + JPA + JTA (Atomikos) + MySQL 을 이용한 멀티 트랜잭션 구현

두 개의 물리적으로 다른 Database에 트랜잭션을 적용하기 위해서 JTA를 사용해야 한다는 것을 듣고 그 중에 Atomikos를 사용하면 된다는 이야기에 구현을 해 보았다. 구글링을 해 보아도 이런말 저런말들이 많고 예전 기준으로 구현된 것도 많고 소스들이 너무나도 달라 뭘 어떻게 따라 해야 할지 막막했는데... 그리고 주로 MyBatis 기준으로 작업이 되어 있어서 답답한 감이 있었는데 JPA 기준으로 작업을 할 수 있도록 4일 정도 삽질 끝에 완성하여 백업 차원에서 기록으로 남긴다. 먼저 Legacy Database와 새롭게 사용하는 Database가 있다는 가정하에 아래와 같이 작업을 해야 한다. 먼저 사용한 의존성은 아래와 같다. build.gradle dependencies { impleme..

Java/Spring 2019.12.05

MySQL의 Float, Double에서 Length와 Decimal이 의미하는 것...

위도와 경도를 표기하기 위해서 DB Column을 만드는 중 알게 된 내용을 정리해 본다.정확한 내용이 아닐 수도 있으니 참고 사항으로만 보길... MySQL에서 float, double 타입을 Create할 때 float(length, decimals) 와 같은 형식으로 만든다.여기서 length와 decimal이 의미하는 내용이 정확히 무엇인지 알기 위해 구글링을 했지만, 매뉴얼에나 나올법한 알아듣지 못할 소리를 번역기로 돌린 듯한 글만 있... 그래서 좀더 검색해 보니 얻어 걸린 글에서 아래와 같은 내용이 보였다. https://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html M(length)는 전체 길이 즉 정수 부분과 소수 부분을 합친 길이..

Develop!/MySQL 2015.06.02

MySQL의 zero date("0000-00-00 00:00:00") 값이 Date 값으로 넘어오지 않는 경우

MySQL에 DateTime 필드에 값이 없을 경우 기본 값으로 "0000-00-00 00:00:00" 들어가는 경우가 있다. 이럴 경우 쿼리해 온 값이 Java의 Model 객체에 Setter로 값을 넣는 과정에서 에러가 발생한다. 에러 메시지는 다음과 같다. "Cannot convert value '0000-00-00 00:00:00' from column 4 to TIMESTAMP" 뭐 '0000-00-00 00:00:00' 값은 timestamp 값으로 바꿀 수 없다는 메시지 같은데... 이럴 경우 어떻게 해결해야 하나 고민하다가 구글링을 통해 알게 된 내용을 정리한다. 보통 Model 객체의 Setter를 아래와 같이 작성하게 된다. setter에서 Date 객체로 받아야 하는데 값을 넘겨줄 수..

Java 2015.04.06

MySQL Replication

Replication을 한개의 물리적 서버에서 테스트 하기 위해 설치할 필요가 있었다.이를 위해 다음과 같은 셋팅으로 설정하였는데, 자료 아카이빙을 위해 정리해 본다. 기본적인 것은 아래와 같다. 1. 한개의 서버에 두개의 MySQL을 설치한다.2. 각각 다른 Port를 사용한다.3. Master, Slave 설정을 하고 Replication을 시작한다. 자세하게 기술하면 아래와 같다. 1. configure를 통해 master mysql 설치 디렉토리를 지정한다. ex)./configure --prefix=/설치디렉토리/mysql_master --with-charset=utf8 --enable-assembler 2. make, make install을 통해 설치한다. 3. master db가 설치가 완..

Server/DB 2013.05.15

mysqli bind_result에서 발생하는 memory 오류 대처법

XE의 mysqli 환경 가운데서 발생하는 오류를 잡기 위해 테스트 하다가 설치 후 초기 화면 조차 보이지 않는 문제를 당면하게 되었다.맞닥뜨리게 된 에러는 다음과 같다. Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 4294967296 bytes) in .../classes/db/DBMysqli.class.php on line 234 4G 메모리 할당을 하다가 오류가 발생했다는 오류였다.대부분 memeory 할당 오류는 php.ini 또는 ini_set을 통해 해결할 수 있다는 답변 뿐이였다.예를 들어 http://www.xpressengine.com/qna/20836943 이런 식 ^^;; 그런데 ph..

Develop!/php 2012.08.14

MySQL Erro Code 28이 리턴되는 경우

작업 서버에서 잘 되던 쿼리가 에러가 떨어졌다. 에러 코드 내용... ERROR 1030 (HY000): Got error 28 from storage engine 1030 에러코드를 메뉴얼로 찾아보니 별다른 내용도 없고, 위 메시지랑 같은 이야기만... ^^;; Error: 1030 SQLSTATE: HY000 (ER_GET_ERRNO) Message: Got error %d from storage engine 그래서 사내 DBA분에게 물어보고 확인해 본 결과 28 에러코드는 다음과 같은 방법으로 찾는 것이라고 한다. [xxxxxx bin]# ./perror 28 OS error code 28: No space left on device mysql이 설치된 디렉토리의 bin 디렉토리에서 perror라는..

Server/DB 2009.04.08 (2)

MySQL의 백업 및 복구

요즘은 MySQL Replication 기능을 이용해서 DB System을 구축하는 경우가 많다. 또한 MySQL DB를 사용하면서 백업은 보통 Replication Slave 단에 있는 백업 Server에서 별도로 받게 된다. 백업 서버에서 Dump로 받게 된 Data는 DML 쿼리로 된 text data이며, 이 데이터를 이용해서 신규 장비를 설치하던가, 아니면 기존 장비에 문제가 생겼을 시 복구를 하게 된다. 그런데 복구를 하더라도 Replication이란 문제로 인해 Master DB와 싱크를 맞추는 문제가 발생하게 된다. 따라서 백업 서버에서 백업을 받게 되는 경우, Master DB의 binary log의 포지션을 알아야지만 된다. 이럴 경우에는 다음과 같은 절차를 따라서 Dump를 받으면 된..

Server/DB 2008.12.15 (2)

MySQL User Conference Korea 2007을 다녀와서...

[행사 홈페이지] 행사는 다음과 같은 순서로 진행 되었다. 13:00 ~ 13:15 : 오프닝 - LDS(리눅스데이타시스템) 13:15 ~ 14:00 : [세션1] Overview of MySQL HA Solutions (Jimmy Guerrero -Senior Product Manager) 14:00 ~ 14:45 : [세션2] Web 2.0 and Emerging web technologies (Brian Acker - Director of Architecture) 14:45 ~ 15:05 : Coffee Break15:05 ~ 15:50 : [세션3] Migrating from Oracle to MySQL (Jimmy Guerrero -Senior Product Manager) 15:50 ~ 16:..

Develop? 2007.09.15

MySQL User Conference Korea 2007이 열리네요.

MySQL 본사(부사장 인듯...) 직원이 직접 와서 강연하는 컨퍼런스가 열리네요. 뭐 영어에 약점이 있어서 이번에도 많이 못 알아 듣고 오겠지만, 일단 사전등록 해 놨습니다. ㅎㅎ 그리고 팀장님께 승인 메일을 ^^ 일단 저질러 놓고 보는 거죠.. ㅠㅠ 좋은 경험 됬으면 하는 바램이 있습니다. ^^ 아... 사전등록 url은 http://www.linuxdata.co.kr/mysql_event/index.html 입니다.

Develop?/News 2007.09.03

MySQL 6.0 alpha가 발표되었네요...

[기사] 뭐 저만 이번에 알게 된건가요? 어째든 보니까... 최근에 발표된거 같은데... innoDB가 오라클에 먹히고 나서 MySQL의 트랜젝션 지원 디비를 자체 개발한다고 했는데, 그 타입이 포함된 디비가 나온 듯 합니다. 성능이 얼마나 좋아졌을지(또는 나빠졌을지) 모르겠는데... 뭐 기능상으로는 이노디비보다 좋게 만든다고 들었으니 ^^ 아직은 불안한 감이 좀 있고 beta라도 되면 좀 깔아서 테스트 좀 해 봐야 겠습니다. 다운로드 사이트는 이곳에서 받으면 될 듯 ^^

Develop?/News 2007.08.24

MySQL에서 대소문자 구별해서 쿼리하기

100만건이 조금 넘는 MyISAM 테이블이 있었다. 주소록 그룹 관련 테이블인데, 유저당 그룹 이름이 중복될 수 없었다. 그런데 기존에는 nhn과 NHN이 서로 같은 것이라고 생각해서 디비 내에서 대소문자가 틀린 경우에는 새로운 그룹을 추가하거나 기존 그룹의 이름을 수정할 수 없었다. 뭐 간단하게 BINARY로 해당 컬럼의 속성을 변경해도 되겠지만... innoDB도 아닌 MyISAM 테이블에 100만건이니 ALTER 한번만 쳐도 수시간은 잡아 먹을 듯 했다. 그래서 메뉴얼을 뒤졌더니... 역시나 ^^ BINARY라는 Cast Function을 쓰면 되는 것이었다. 복잡하게 해결해야 만 될것같은 문제를 간단하게 해결할 수 있게 되었다. 역시 모든 문제의 해결책은 메뉴얼이다.

Server/DB 2007.05.15

Z와 S의 차이...

MySQL에서 테이블 컬럼 분석할 일이 생겨서... 일전에 phpMyAdmin에서 하던 명령을 콘솔에서 날려 볼려고 하였다. 대충 기억나는 명령어로는 ANAL... 뭐라고 하는거 같았는데 라며... 메뉴얼을 뒤적였다. 다음과 같은 명령어가 나오더군... 이게 맞나보다 하고 날렸더니 -.-;; 왜 안되는거지... -.-;; 내가 예상했던 결과하고 틀리게 나오네 -.-;; 이곳 저곳 한참을 찾은 끝에 알아 낸 명령어는... -.-;; 어... ANALYZE하고 ANALYSE하고 뭐가 틀린거야? 얼른 네이버 사전을 찾아 봤다 analyze an·a·lyze〔〕 vt. 1【물리·화학】 분석하다, 분해하다;【수학】 해석하다 《analyze+목+전+명》 analyze something into its element..

Server/DB 2007.02.14 (2)

MySQL에서 변수의 사용...

보통 MySQL에서 변수를 쓰려면 다음과 같이 하면 된다. SET @yesterday := DATE_ADD(DATE(CURDATE()), INTERVAL -1 DAY); 또한 쿼리 내에서 직접 변수에 값을 담으려면 다음과 같이 하면 된다. SELECT column INTO @columnVar ... 이런식으로 쿼리만을 모아서 프로그램 짜듯이 procedure하게 짜나간 후 sql파일로 저장해서 사용한다. 여지껏 이렇게 만들어서 사용하고 있는데... 문제가 하나 생겼다 SELECT해온 컬럼값이 없을 경우 에러를 내 뱉으면서 다음 내용으로 넘어가질 않는 것이다. MYSQL 문법을 뒤져서 겨우 겨우 찾아냈다. SELECT @columnVar := column ... 이런식으로 하면 에러가 안나면서 변수에 값을..

Server/DB 2006.12.18 (2)

[허접]현재 돌고 있는 MySQL을 ERD처럼 만들기...

음... 안올릴려다가.. ㅋ 그냥 올립니다. ^^ 제목에 허접이라고 달려 있으니 딴지는 반사.. ^^ 우선 ERD처럼 만든 다음 CREATE 쿼리 만드는 것은 EXPORT로 하면 쉬운데.. 현재 돌고 있는 디비를 ERD처럼 만드는 것은 해보질 않아서.. 조금 해멨습니다. ^^;; 다음과 같이 하면 됩니다. 1. DB Designer를 설치합니다. ^^ 없으면... http://down.clubbox.co.kr/studyweb/cnr1 에서 다운로드.. 이거 클럽박스 링크이니.. 다운로드가 별로 없으면... 삭제 되니 그 이후에는 알아서들 구하시길...(아마도 GPL이니.. 라이센스 문제는 없을 듯..) 2. File > New 해서 빈 문서 하나를 만듭니다. 3. Database > Reverse Eng..

Develop!/etc 2006.11.13 (2)

[1원팁]이메일에서 아이디 부분만 검색하기

이메일이 들어가 있는 필드를 검색하는 부분이 있었다. 결과는 뒤에 '@naver.com'과 같은 부분을 제하고 보여주는 것이였는데... 아무 생각없이... "email LIKE '%$searchWord%' 라고 했더니... 바로 QA 팀에 걸렸다 ㅎㅎ n, a, v, e, r, ., c, o, m 중 아무 글자로나 검색하면... 모든 내용이 다 나오게 되니 말이다 ㅎㅎ 그래서 MySQL 메뉴얼 찾아서 검색해보니... SUBSTRING_INDEX 라는 좋은 놈이 있더라... SELECT email FROM table WHERE SUBSTRING_INDEX(eamil, '@', 1) LIKE '%$searchWord%';

Server/DB 2006.11.01
반응형