반응형
반응형
반응형


$host="localhost";

$user_name="";

$db_password="";

$db_name="";


$dbcon = mysql_connect($host,$user_name,$db_password) or message(mysql_error());

mysql_select_db($db_name,$dbcon) or message(mysql_error());


$result = mysql_query("SHOW TABLE STATUS", $dbcon);

$total_size = 0;


while($dbData=mysql_fetch_array($result)){

        $total_size += $dbData["Data_length"]+$dbData["Index_length"];

}

mysql_close($dbcon);


printf("%0.2f MB \n",$total_size / (1024*1024));




참조 : http://www.xpressengine.com/phpClass/20386043

반응형

'Database > Mysql' 카테고리의 다른 글

사용자 추가  (0) 2013.09.04
루트 비밀번호 설정, 변경.  (1) 2013.09.04
외래키 설정 방법.  (0) 2012.04.10
[jdbc] connection 연결시 캐릭터셋 설정.  (0) 2012.02.29
port 지정하여 접속하기.  (0) 2012.02.09
반응형

 

 

[CONSTRAINT symbol] FOREIGN KEY (index_col_name, ...)

              REFERENCES table_name (index_col_name, ...)

              [ON DELETE {CASCADE | SET NULL NO ACTION | RESTRICT}]

              [ON UPDATE {CASCADE | SET NULL NO ACTION | RESTRICT}]

 

ALTER TABLE table_name -- 설정할 테이블

ADD FOREIGN KEY (fk_field) -- 테이블에 FK 컬럼

REFERENCES ref_table_name(ref_pk)-- FK 연결이 되는 테이블과 PK 컬럼

ON DELETE RESTRICT -- 기본설정으로 자식에서 부모를 삭제 불가

ON UPDATE RESTRICT; -- 기본설정으로 자식에서 부모를 업데이트 불가

 

ON DELETE RESTRICT : 기본설정으로 자식 row 에서 해당 부모 row 를 삭제하지 못한다.

ON DELETE CASCADE : 부모 테이블의 row가 삭제되면, InnoDB는 부모 row

참조키와 동일한 외래 키를 갖는 자식 테이블의 모든 해당 row도 자동적으로 삭제한다.

ON DELETE SET NULL : 자식 row도 자동적으로 update되어 외래 키에 해당하는 row

NULL이 된다.

 

 

반응형

'Database > Mysql' 카테고리의 다른 글

루트 비밀번호 설정, 변경.  (1) 2013.09.04
[php] db 사용량 구하기.  (1) 2012.12.13
[jdbc] connection 연결시 캐릭터셋 설정.  (0) 2012.02.29
port 지정하여 접속하기.  (0) 2012.02.09
캐릭터셋 환경 변수  (3) 2010.12.01
반응형

jdbc 를 이용한 mysql 접속 시 캐릭터셋 설정 방법.


jdbc:mysql://host/dbname?characterEncoding=utf8&characterSetResult=utf8

반응형

'Database > Mysql' 카테고리의 다른 글

[php] db 사용량 구하기.  (1) 2012.12.13
외래키 설정 방법.  (0) 2012.04.10
port 지정하여 접속하기.  (0) 2012.02.09
캐릭터셋 환경 변수  (3) 2010.12.01
[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
반응형

3306 이 아닌 다른 port 로 접속할때의 옵션은 -P

$ mysql -u root -p mysql -P 22222

반응형

'Database > Mysql' 카테고리의 다른 글

외래키 설정 방법.  (0) 2012.04.10
[jdbc] connection 연결시 캐릭터셋 설정.  (0) 2012.02.29
캐릭터셋 환경 변수  (3) 2010.12.01
[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
MySQL Start, Stop  (0) 2010.10.29
반응형

데이터베이스 환경 설정.
 - show variables like 'char%';

테이블 환경 설정.(Collation 확인)
 - show table status from [데이터베이스 명] like '[테이블명]%';


환경 변수 설명.
character_set_client
 - 클라이언트로부터 전달되는 명령문용 문자 셋.
 - 클라이언트에서 문장이 떠날 때 해당 문장은 어떤 문자셋으로 이루어져있는가의 문제.

character_set_connection
 - 클라이언트에서 넘어온 문장을 서버에서는 어떤 문자셋을 기준으로 해석해야하는가의 문제.
 - 문자 셋 인트로듀서 (introducer)를 갖고 있지 않는 리터럴 (literal) 및 숫자-문자 (number-to-string) 변환을 위해 사용되는 문자 셋.
모든 문자 스트링 리터럴은 문자 셋과 콜레션을 가지고 있다.
문자 스트링 리터럴은 하나의 문자 셋 인트로듀서 (introducer)와 COLLATE 구문을 옵션으로 가질 수도 있다:
[_charset_name]'string' [COLLATE collation_name]

예문:
SELECT 'string';
SELECT _latin1'string';
SELECT _latin1'string' COLLATE latin1_danish_ci;
간단한 명령문 SELECT 'string'의 경우, 스트링은 character_set_connection 과 collation_connection 시스템 변수가 정의하는 문자 셋과 콜레션을 갖는다.
_charset_name 수식은 일반적으로 인트로듀서 (introducer)라고 불린다. 이것은 파서 (parser)에게 “뒤에 따라오는 스트링은 문자 셋 X를 사용한다”라고 전달한다. 과거에는 이로 인해 사용자들이 혼란이 있었기 때문에, 인트로듀서는 어떠한 변환 (conversion)도 일으키지 않는다는 점을 강조한다; 엄밀히 말한다면, 이것은 스트링 값을 변경하지 않는 신호 (signal)이다. 또한, 인트로듀서는 표준 헥스 리터럴 (hex literal)과 헥스 리터럴 표기법 (x'literal' 및 0xnnnn) 보다 앞선 규칙이다.

character_set_database
 - 디폴트 데이터 베이스가 사용하는 문자 셋. 서버는 디폴트 데이터 베이스가 변할 때 마다 이 변수를 설정한다.
   디폴트 데이터 베이스가 없다면, 이 변수는 character_set_server와 같은 값을 가지게 된다.

character_set_filesystem
 - 파일 시스템 문자 셋.
   이 변수는 LOAD DATA INFILE 과 SELECT ... INTO OUTFILE 명령문 그리고 LOAD_FILE() 함수와 같은 파일 이름을 참조하는 스트링 리터럴을 해석하는데 사용된다.
   이러한 파일 이름은 파일을 오픈 하려는 시도가 있기 전에 character_set_client에서 character_set_filesystem으로 변환된다. 디폴트 값은 binary인데, 이것은 이무런 변환이 없다는 것을 의미한다. 멀티 바이트 파일 이름을 사용할 수 있는 시스템에서는 서로 다른 값을 사용하도록 한다. 예를 들면, 시스템이 UTF-8를 사용해서 파일 이름을 표시한다면, character_set_filesytem을 'utf8'로 설정한다. 이 변수는 MySQL 5.1.6에서 추가 되었다.

character_set_results
 - 쿼리 결과를 클라이언트에 리턴하기 위해 사용되는 문자 셋.
 - 서버에서 클라이언트로 응답을 넘겨줄때 어떤 문자셋으로 넘겨야하는가의 문제.

character_set_server
 - 서버의 디폴트 문자 셋

character_set_system
 - T 식별자 (identifier)를 저장하기 위해 서버가 사용하는 문자 셋. 그 값은 항상 utf8이 된다.

character_sets_dir
 - 문자 셋이 설치되어 있는 디렉토리.



문자 셋이란....
문자 셋이란 심볼과 인코딩 (encoding)을 의미한다. 콜레션은 하나의 문자 셋에 있는 문자들을 비교하기 위한 규칙 셋을 의미한다. 가상의 문자 셋을 사용해서 설명을 보다 명확히 하도록 하자.
 
4개의 문자를 사용하는 알파벳이 있다고 가정하자: ‘A’, ‘B’, ‘a’, ‘b’. 각각의 문자에 숫자를 하나씩 부여한다: ‘A’ = 0, ‘B’ = 1, ‘a’ = 2, ‘b’ = 3. 문자 ‘A’는 심볼이고, 숫자 0 은 ‘A’에 대한 인코딩이며, 네 개의 문자를 각각의 인코딩과 결합한 것이 문자 셋이 되는 것이다.
 
두 개의 스트링 값을 비교하는 경우를 가정하자: ‘A’ 와 ‘B’. 가장 간단하게 비교하는 방법은 각 문자의 인코딩을 살펴 보는 것이다: ‘A’의 0 과 ‘B’의 1. 0 이 1보다 작기 때문에, ‘A’가 ‘B’보다 작다고 말할 수 있다. 이와 같은 방법이 문자 셋에 대해서 콜레션을 적용한 것이다. 콜레션은 규칙 셋이다 (이와 같은 경우에는 한 가지 규칙만 있음): “인코딩을 비교한다.” 위와 같이 콜레션 방법 중에 가장 간단한 방법을 우리는 바이너리 콜레션이라고 부른다.

반응형
반응형
반응형

'Database > Mysql' 카테고리의 다른 글

port 지정하여 접속하기.  (0) 2012.02.09
캐릭터셋 환경 변수  (3) 2010.12.01
MySQL Start, Stop  (0) 2010.10.29
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
mysql reload.  (0) 2009.04.08
반응형
MySQL Start, Stop 명령
- Start : mysql/bin/mysqld_safe &
- Stop : mysql/bin/mysqladmin --user=userid --password=pwd shutdown
(root권한을 가진 user계정으로 실행)
반응형

'Database > Mysql' 카테고리의 다른 글

캐릭터셋 환경 변수  (3) 2010.12.01
[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
mysql reload.  (0) 2009.04.08
between  (0) 2009.02.11
반응형

MySQL과 JAVA를 연동하기 위해서는 JDBC를 이용하여 할 수 있다.
이렇게 JAVA와 연동을 하여 데이터를 저장, 삭제, 검색 등을 할 수 있는데,
여기서 문제점이 발생했었다. 영문은 아무 탈 없이 저장이 되는데 유독 :한글: 입력 시 깨짐현상이 발생된다.

이 부분에 있어서 여러 사이트를 보고, 책도 보고 했지만 결론을 내지 못했었는데, 오늘 그 현상을 해결해버렸다.

※ Java는 기본적으로 모든 문자열을 Unicode로 취급한다. 하지만 MySQL은 기본적으로 ISO-8859-1(latin1)로 인식해버린다. 이런 차이점이 있기에 한글에 깨져보이는 것이다.

여러가지 방법이 있는데 2가지 방법을 소개하겠다.

1. MySQL의 my.ini 수정하기

현재 나는 MySQL Server 5.0을 사용하고 있다.
C드라이브에 깔려진 MySQL폴더에 보면 my.ini 라는 파일이 있을 것이다.
이 파일을 열어 보면 Client Section에
[mysql]
default-character-set=latin1 <- 이부분의 latin1값을 euckr으로 바꾼다.가끔 어떤 블로그를 보면 euc-kr로 하라고 하는데 그렇게 변경하고 난 후 MySQL을 실행하면 창이 그냥 죽어버리는것을 알 수 있다, 오류메시지를 보면 euc-kr을 컴파일 할 수 없다는 내용이다. 그 내용을 찾아 MySQL\share\charsets 폴더에 들어가면 index.xml 파일이 있는데 그 안에 euckr로 명시 되어 있다. 그러니 euckr로 설정하기 바란다.

그런 후 역시나 Server Section에서도
[mysql]
찾이보면 default-character-set=latin1 이 부분이 있을텐데 이것을 default-character-set=euckr로 바꾸면 된다.

이렇게 해주면 이제 MySQL에서 한글을 저장 할 수 있게 된다.

2. Java 코드로 변환하기

위에서 말했듯이 Java와 MySQL의 기본 문자열 형식이 틀리다.
그렇기에 Java 코드를 통해 변환을 해주면 된다.

아래와 같은 메소드를 만들어 사용하면 된다.

/// MySQL에서 불러온 데이터를 Java에서 사용할 수 있는 Unicode로 변환
private static String toUnicode(String str) throws Java.io.UnsupportedEncodingException{
    return new String(str.getBytes("ISO-8859-1"));
}

/// Java에서 저장 할 데이터를 MySQL에서 사용할 수 있는 Latin1로 변환
private static String toLatin1(String str) throws Java.io.UnsupportedEncodingException{
    return new String(str.getBytes(), "ISO-8859-1");


참고) 1번은 개인적으로 실패를 통해 얻은 것이며, 2번은 한빛미디어 - 뇌를 자극하는 Java 21장에서 참고했습니다.
참조 사이트 : http://acedon.egloos.com/1668830
반응형

'Database > Mysql' 카테고리의 다른 글

[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
MySQL Start, Stop  (0) 2010.10.29
mysql reload.  (0) 2009.04.08
between  (0) 2009.02.11
UNIQUE KEY  (0) 2009.02.11
반응형
root 에서 user 추가나 DB 추가 후 적용시킬때 사용.


flush privileges;



반응형

'Database > Mysql' 카테고리의 다른 글

MySQL Start, Stop  (0) 2010.10.29
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
between  (0) 2009.02.11
UNIQUE KEY  (0) 2009.02.11
트리거 간단하게 구현한것.  (0) 2009.02.11
반응형
WHERE num between '1' and '2';
반응형

'Database > Mysql' 카테고리의 다른 글

[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
mysql reload.  (0) 2009.04.08
UNIQUE KEY  (0) 2009.02.11
트리거 간단하게 구현한것.  (0) 2009.02.11
Joing 방법 종류 정리  (0) 2009.02.11

+ Recent posts