2014년 5월 27일 화요일

MYSQL - ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

원격지에서 mysql에 붙으려 했는데..

저 에러가 떨어졌음. -_-;

다른 여러 검색 가능한 케이스들이 있지만..


우분투 였고
/etc/hosts.allow 파일에

mysqld:ALL

넣고 퉁쳤음.


기타

grant all privileges on *.* to 'root'@'%' identified by 'root의 패스워드';
flush privileges;

위에 사항으로 처리하는 것도 있고.

my.cnf 에
bind-address           = 127.0.0.1

를 주석 치는걸로 처리하는 경우도 있음.

2014년 5월 20일 화요일

MYSQL - ERROR 1005 (errno: 150)

1. FOREIGN KEY는 PRIMARY KEY의 자료형과 동일 해야함
: PK가 Unsigned INT이고 FK가 INT이면 errno:150임

2. FOREIGN KEY와 PRIMARY KEY 둘다 INNODB 이어야만 함

3. 그렇지 않은데도 에러라면 FOREIGN KEY 사용 레퍼런스를 참조할것


FOREIGN KEY  사용에 대한 레퍼런스

2014년 5월 13일 화요일

curl 을 이용하여 json restful api test 해 보기

멀더의 IT 개발자 블로그 에서 퍼옴
http://windowx.tistory.com/entry/curl-을-이용하여--json-restful-api-test-해-보기


curl 을 잘 이용하면  restful api 테스트에 용이 합니다. 아래의 sample 을 참고 바랍니다.

curl -i -v -X POST --cookie "cookiename1=cookievalue1; cookiename2=cookievalue2"  -H "Content-Type:application/json"  http://localhost:8080/api/url -d  '{"name01":"value01","name02":"value02"}'


수신도 json 형식으로 받을려면 : -H "Accept: application/json" 추가 함
curl -i -v -X POST --cookie "cookiename1=cookievalue1; cookiename2=cookievalue2"  -H "Content-Type:application/json" -H "Accept: application/json"  http://localhost:8080/api/url -d  '{"name01":"value01","name02":"value02"}'


parameter : 
-i : 헤더를 출력한다
-v : 상세로그를 출력한다.
-X : POST/GET 등 메소드를 지정한다.
--cookie : header 에 쿠키를 추가 한다
-d:  POST form  value를 추가 한다.



내가 썼던것은
curl -i -v -X POST http://10.6.4.107/sp/app/auth/login.php -d '{"udid":"UDID","os":"1","phone":"PhoneNumber"}'
이정도의 가벼운 느낌으로 함.

2014년 5월 11일 일요일

MYSQL - enum

MYSQL의 데이터 형식중에 enum이 존재하는데
비슷한 녀석으로 SET도 있음

최대 65535개의 엘리먼트를 가질 수 있음.

인덱스를 사용, 인덱스는 1부터 시작됨


CREATE TABLE TEST
(
eRecoveryType ENUM('Hungry','Thirst','Clean','Felling','Energy')
eRecoveryValue int
)

INSERT INTO TEST VALUES ('Hungry', 100)
INSERT INTO TEST VALUES (2, 50)

select * from TEST;
--------------------------------------------
Hungry 100
Thirst 50
--------------------------------------------

select * from TEST where eRecoveryType = 1
--------------------------------------------
Hungry 100
--------------------------------------------

맞지 않는 값을 삽입하면 빈 문자열('')이 삽입된다.
그경우 0번 인덱스가 됨

NULL 도 삽입 가능함


이넘값에 +0 이라고 적은경우 해당 인덱스가 표시됨
select eRecoveryType , eRecoveryType +0, eRecoveryValue from TEST
--------------------------------------------
Hungry 1 100
Thirst 2 50
--------------------------------------------



에 대한 예제
http://dev.mysql.com/doc/refman/5.6/en/enum.html

ValueIndex
NULLNULL
''0
'Mercury'1
'Venus'2
'Earth'3
이런 느낌의 데이터.. 


2014년 5월 7일 수요일

MYSQL - Log (general_log)

언제 부터 인지 모르지만 일반 log 옵션이 general_log로 바뀐다고 워닝으로 본듯



[현재 서버 변수 값 확인]
mysql> show variables where Variable_name in ('version', 'log', 'general_log', 'general_log_file', 'log_output');
+------------------+--------------------------------------+
| Variable_name    | Value                                |
+------------------+--------------------------------------+
| general_log      | OFF                                  | // 로그 비활성화 상태
| general_log_file | /var/run/mysqld/mysqld.log           |
| log              | OFF                                  |
| log_output       | FILE                                 |
| version          | 5.1.73                               |
+------------------+--------------------------------------+
5 row in set (0.00 sec)


[로그 활성화 하기]
mysql> set global general_log = 1;
Query OK, 0 rows affected (0.00 sec)




[로그 파일이 쌓는 방식 선택]
mysql> show variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | FILE  |
+---------------+-------+
1 row in set (0.00 sec)
// 로그 쌓는 방식을 "FILE" 혹은 "TABLE" 둘 중 한가지 방식으로 선택 할 수 있다.(둘다도 가능)



[로그 파일이 테이블에 쌓이는 방식 선택]
mysql> set global log_output='TABLE';
Query OK, 0 rows affected (0.00 sec)



[로그 파일이 파일,테이블 둘다 쌓이 방식 선택]
mysql> set global log_output='TABLE,FILE';
Query OK, 0 rows affected (0.00 sec)



[테이블에 실행한 쿼리 기록]
mysql> select * from mysql.general_log limit 1;