'Programming/DB'에 해당되는 글 3건

# db, client 의 케릭터셋이 아닌 테이블과, 필드의 케릭터셋 변경 하기.
# 테이블 케릭터셋 변경
 ALTER TABLE 'radreply' DEFAULT CHARACTER SET euckr COLLATE euckr_korean_ci;
 ALTER TABLE 'radreply' DEFAULT CHARACTER SET utf8 COLLATE 
utf8_general_ci;

# 확인 
mysql> show create table [테이블명];



# 필드(컬럼)의 케릭터셋 변경 방법
# radreply 라는 테이블의 value라는 필드의 케릭터셋을 euckr로 변경하기
alter table radreply modify value varchar(253) character set euckr NOT NULL default '' 
# 확인 
mysql> show create table [테이블명];


PS : 변경시 modifiy 와 change를 사용할 수 있는데 이부분은 검색!!!!

 - change 사용 예

alter table radreply change value value varchar(253) character set euckr NOT NULL default ''


 

'Programming > DB' 카테고리의 다른 글

[MySQL] characterset 변경  (0) 2011.04.20
MySQL 기본  (0) 2011.03.31
블로그 이미지

NDay

일상 메모장... ㅎ

,
# 설정값 확인
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.1.46, for pc-linux-gnu (i686) using readline 5.1

Connection id:          2478864
Current database:       [db명]
Current user:           [유저명]@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.1.46-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /tmp/mysql.sock
Uptime:                 50 days 14 hours 29 min 13 sec

Threads: 27  Questions: 24232435  Slow queries: 11525  Opens: 47160  Flush tables: 1  Open tables: 434  Queries per second avg: 5.542
--------------
 
# 변경 전 한글이 정상적으로 보이지 안는다.
 mysql> select * from code;
+-----+------+------+-------------+
| idx | kind | code | description |
+-----+------+------+-------------+
|  16 | POLI | 04   | ??? ??      |
+-----+------+------+-------------+
12 rows in set (0.01 sec)st

client characterset 변경하기 (현재 세션에서만 적용 됨. 재접속시 다시 해줘야 하는 불편함이 있음.)
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> status 확인해보면 다음처럼 변경 됨.
~~
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
~~

# Db     characterset 변경방법 
set character_set_database = utf8

mysql> status 확인
~~
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
 


=================================================================


 기타
 
불친절한다래아빠 08-04-03 17:33
 
default character set utf8 collate utf8_general_ci; 

를 하지 않고 기본적으로 알아서 utf8로 잡히게 할 수는 없나요?
 
  
전진하는아르고 08-04-03 17:38
 
부팅시에 --default-character-set=utf8 옵션을 주시고 시작해보세요. 
그러면 부팅시 모든 옵션값들이 utf8 이 기본설정이 됩니다. 

기존에 euckr 로 잡히는건 현재 접속한 db 를 생성할때 euckr 로 설정되어서 그렇습니다. 
alter database db명 default character set utf8; 이렇게 바꿔주시면 되고 재접속 
(세션종료후 다시 접속)해도 바뀌지 않고 적용이 됩니다.
  
불친절한다래아빠 08-04-03 17:37
 
alter database db명 default character set utf8 collate utf8_general_ci; 

감사합니다. 생각해보니까 애시당초 database 생성시에 기본 값으로 주면 되는 거였네요;;; 

아르고님 정말 감사합니다.


기타

mysql 4.1의 경우에는 접속 시 'client characterset'이 기본적으로 'latin1'이 되어 버린다.

이 경우 'server characterset', 'database characterset'이 모두 'euckr'로 설정이 되어 있다하더라도 한글 깨짐 현상이 나타나게 된다.

 

이러한 문제를 해결하기 위해서 'client characterset'을 변경해야 하는데, 방법은 mysql 접속 후

'set names euckr'

을 실행하게 되면, 'client characterset'이 'euckr'로 변경이 되면서, 한글깨짐 문제가 해결된다.

물론 그 전에 'server characterset', 'database characterset'은 모두 'euckr'로 되어 있어야 한다.

 

[현재 characterset 설정 확인]

mysql> show variables like 'char%';

 

[client characterset 변경]

mysql> set names [변경하고자 하는 characterset 명칭];

 

[database characterset 변경]

mysql> alter database [DB명칭] character set [변경하고자 하는 characterset 명칭]; 

==========================================================

참고 URL
http://cafe.naver.com/inmacbook.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=349087&  

'Programming > DB' 카테고리의 다른 글

[MySQL] characterset 변경 [table, field]  (0) 2011.08.01
MySQL 기본  (0) 2011.03.31
블로그 이미지

NDay

일상 메모장... ㅎ

,

MySQL 기본

Programming/DB 2011. 3. 31. 01:17
  • root 비밀번호 설정하기 (최초)
    mysql> USE mysql;  //mysql DB를 선택
    Database changed
     
    mysql> UPDATE user SET paaword=password('123456') WHERE use = 'root';  // pw update
    Query OK, 2rows affected(0.00 sec)
    Rows matched:2 Changed:2 Warnings:0
     
    //mysql의 user테이블을 변경시 flush privileges를 실행하여 변경된 내용을 다시 읽어들임.
    mysql> FLUSH PRIVILEGES;  
    Query OK, rows affected (0.00 sec)
     
    mysql>
     
  • 데이터베이스 생성
    - 형식 : CREATE DATABASE [생성할DB명]
    mysql> create database testdb;
    Query OK, 1 row affected (0.00 sec)

  • 데이터베이스 삭제
    -형식 : DROP DATABASE [DB명]
    mysql> drop database testdb;
     Query OK, 0 row affected (0.00 sec)

  • 테이블 수정하기 (필드 추가)
    - 형식 : ALTER TABLE [테이블명] ADD COLUMN [필드명] [자료형] [순서]
    mysql> ALTER TABLE testTable ADD COLUMN postId INT(11) first;
    Query OK, 0 row affected (0.00 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    // 필드 맨 마지막에 추가하려면 순서를 입력하지 않는다.
    // 필드를 특정 필드 다음에 추가하려면 순서에 'after 필드명'을 입력한다.
     
  • 테이블 수정하기 (필드 삭제)
    - 형식 : ALTER TABLE [테이블명] DROP [필드명]
    mysql> ALTER TABLE testTable DROP postId;
    Query OK, 0 row affected (0.00 sec)
    Records: 0  Duplicates: 0  Warnings: 0

  • 테이블 수정하기 (필드 이름 변경)
    - 형식 : ALTER TABLE [테이블명] CHANGE [기존필드명] [변경할필드명] [자료형]
    mysql> ALTER TABLE testTable CHANGE postId cmtId INT(11);
    Query OK, 0 row affected (0.00 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    // postId 필드의 이름이 cmtId로 변경됨.

'Programming > DB' 카테고리의 다른 글

[MySQL] characterset 변경 [table, field]  (0) 2011.08.01
[MySQL] characterset 변경  (0) 2011.04.20
블로그 이미지

NDay

일상 메모장... ㅎ

,