2014.07.16 00:18

게임 관리툴(mysql 연동)/로그 시스템(couchbase 연동) 제작하면서 같이 정리함.


* 일단 node.js를 설치한다.  (http://www.nodejs.org/)

* express 패키지를 설치한다. (command line 에서 "npm install express" 입력!)

 : 설치하고 나서 npm list installed에 express 안나오네? 일단 node_modules에 들어가면 설치된 것을 확인할 수 있음.

* 집에서 하고 있는 거라 DB는 xampp 에 있는 mysql 사용. 가동 편하고 인스톨 편하고, 이미 설치되어 있고...

* node-mysql 모듈 설치 ("npm install mysql")

* couchbase는 여기서 다운로드 (http://www.couchbase.com/)

* couchbase 모듈 설치("npm install couchbase")

  => 이 모듈 외에도 설치시 vcbuild.exe가 필요한 경우가 있음. 

    :http://www.microsoft.com/ko-kr/download/details.aspx?id=40787

  => python3 버전으로 설치했었는데, 빌드가 안됬음. 2.7 버전에 3.0 버전 사이 쓰라는 메세지 나옴. 주의할 것!

  => 모듈을 한번 빌드하고, 다음엔 그냥 복사해서 썼는데, 32bit에서 빌드한거 64bit용에서 쓰니 에러 남. 주의할 것!

  => 윈도 서버에서는 해당 모듈 폴더에 빌드가 되던데, 일반 PC에서는 "users/계정/appdata/roaming/npm/node_modules/에 빌드 됨. 폴더 위치 주의할 것!


 


저작자 표시 비영리 동일 조건 변경 허락
신고
2014.07.02 18:31

쿼리브라우져를 사용할 때,


새로운 편집 창을 열면 새로운 세션이 생성됨.


그래서 편집 창을 열었다가 뭔가 하고 닫기를 반복하면, 


세션이 계속 생성되어, max_connections 개수를 초과하는 문제가 발생할 수 있다. 


거기다 wait_timeout을 길게 잡아두면 더 쉽게 걸림. 


sp를 줄줄이 수정하다가 문제가 생기는 경우가 있음. 


주의하자.!!



저작자 표시 비영리 동일 조건 변경 허락
신고
2014.06.26 21:08

예를들어 sp를 사용할 때, 내가 조회하는 테이블에 seqIndex라는 컬럼이 있고,


쿼리문은 아래와 같다고 가정한다.


insert into tbTable_Backup (seqIndex) select @seqIndex from tbTable where index=@inp_index;


tbTable과 tbTable_Backup은 같은 구조로 되어 있으며,


tbTable은 seqIndex bigint 컬럼 하나만 가지고 있다고 가정한다.


위 쿼리에서 원래는 서브쿼리인 select문은, 아래의 코드가 원래 의도했던 바다.


insert into tbTable_Backup (seqIndex) select seqIndex from tbTable where index=@inp_index;


이 경우, 


Query Browser 든, WorkBench든 문법 오류를 발생하지 않는다.


(컬럼 이름과 변수명이 틀린다고 해도 오류를 발생하지는 않음.)


sp를 사용할 때는 더 황당해 지는데, SQLExecute를 실행해도 오류는 발생하지 않는다.



output 값이 없을 경우, 이런 에러에 대해서는 대처할 방안이 없다. 


또한 output 값이 있어도 정상적인 output값을 리턴하지 않는다.


지정된 output값에는 @seqIndex값이 들어가 있을 것이다. 


output 변수의 이름이 @seqIndex가 아니어도...


단순 오타에서 비롯된 문제긴 했지만, 


mysql에서 어떻게 이런 코드가 output값에 영향을 미쳤는지 찾아봐야 할 듯.









저작자 표시 비영리 동일 조건 변경 허락
신고
2014.05.22 18:45

쿼리 브라우져에서 sp가 안보이는 현상 발생.


CentOS , Mysql. 5.6.x, 


[발생 상황]

- sp를 실시간으로 수정하기 위해 sp 수정해서 실행을 누름. 

- 때마침 DB 부하 테스트 중이었는데 ... 

- sp 수정을 위한 실행이 멈춤. 응답없음으로 돌변

- 시스템 재부팅 해봄. 

- 디스크 용량 부족을 확인함.

- 디스크 정리.


이제 다른 DB는 다 보이는데, 내가 작업하던 DB만 안보임. 


show procedure status 때려보니 일단 존재는 함. 휴~~~


show create procedure sp이름; 해보니 내용도 잘 존재함. 휴~~~


근데 왜 쿼리 브라우져에서는 sp가 안보이는거지??


--;; 리플레쉬하니 나오네.. ㅋ


저작자 표시 비영리 동일 조건 변경 허락
신고
2014.02.05 12:02

로그 위치를 별도 지정하지 않았다면 일반적으로 /var/lib/mysql 에 생성됨.


바이너리 로그는 mysql-bin.0000XX 이런식으로 생성되며, 이 파일을 삭제할 경우가 생긴다면

mysql-bin.index에 기록된 정보도 같이 수정되어야 한다.

(* 이 내용이 일치하지 않으면 실행 안됨.)


바이너리 log 파일은 mysqlbinlog [로그파일명] 으로 볼 수 있으며, 텍스트 파일 형태로 변환할 때는 mysqlbinlog mysql-bin.000001 >> mysqlquerylog.txt 형태로 변경하여 볼 수 있다. 

용량이 크면 split으로 분리할 것!


/etc/my.cnf 에서 innodb_log_file_size의 용량을 수정할 때는 innodb_buffer_pool_size의 25% 이하로 설정해야 함.


innodb_log_file_size옵션값으로 설정되는 파일이 ib_logfile0과 1인데, 해당 옵션의 값을 조정하려면 아래와 같은 순서로 진행해야 한다.


1) mysql 종료

2) ib_logfile0과 1을 이동하거나 이름 변경

3) 옵션값 조정

4) 재시작


기존에 할당된 용량만큼의 사이즈로 이미 할당되어 있기에 옵션만 바꾸면 실행시 에러가 발생한다. 주의할 것!

저작자 표시 비영리 동일 조건 변경 허락
신고
2014.01.08 15:18


(원 출처)http://www.skysql.com/blogs/max-mether/mysql-56-vs-mariadb-100


지원하는 기능들에 대해서 잘 정리되어 있어 공유해둠.



10.0.2가 릴리즈되면 지금 쓰는 mysql5.6을 대체할 예정이었는데 좀 더 고민 중.


mariaDB에 innoDB의 memcached plugin이 아직 존재하지 않는 듯.


빨리 지원되어야 할텐데... 

저작자 표시 비영리 동일 조건 변경 허락
신고
2013.12.03 18:57

악질 문제점들이 좀 있다. 해결 방법을 찾아야 되는데 걱정이네... 쩝!


1. sp 내부에 $tiCount라는 변수를 선언없이 사용할 경우 SP 생성 시 에러 안나고 넘어감.

   sp를 사용하는  코드에서도 에러가 안남. 리턴값이 있을 경우 완전히 엉뚱한 결과가 돌아옴.

   하지만 결과적으로 다음 쿼리의 지연을 발생해서 원인이 어디의 문제인지를 찾기 어려움.

   

2.  자료형이 완벽히 일치해야 한다. 오타가 있을 경우 1번의 경우와 같은 결과를 발생시킴. 에러없이 오작동함. 


이 두가지가 사람 미치게 만드는 듯. 


일단 주의만 하면 큰 문제는 없겠지만.. 


MariaDB가 10버전이 되는 순간 바로 바꿔 버려야지 +_+

저작자 표시 비영리 동일 조건 변경 허락
신고