'MySQL'에 해당되는 글 2

  1. 2008/11/23 MySQL 5.0 에서 에러 상황 극복?
  2. 2006/05/13 MySQL 코드셋 변경

MySQL 5.0 에서 에러 상황 극복?

크리에이티브 커먼즈 라이선스
Creative Commons License
오늘 우분투에서 mysql 한번 내리고 다시 올리면서 발생한 상황이다. 무슨 이유인지는 모르겠지만... MySQL stop 상황에 들어가면 아래의 에러 메시지를 뿜어내면서, 이놈이 데이터를 쓰지 않고 내려가는 듯한데...

/etc/init.d/mysql/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

어쨋든 다시 올리면 아래와 같은 냄새나는 메시지를 뿜으면서 전혀 응답을 하지 않는다.

 * Starting MySQL database server mysqld                                      [ OK ]
 * Checking for corrupt, not cleanly closed and upgrade needing tables.


체크하면서 lock 을 거는것 같은데 자세한 건 모르겠고... 아무리 기다려도 웹에서 응답할 생각을 안하길래... 어떻게 해결했는고 하니...

그냥 루트로 권한 변경해서 mysql 데이터가 저장되는 장소에서 isam 체크를 한번씩 돌려보았다. -0-

root@daphne:/var/lib/mysql# myisamchk */*.MYI
...

Checking MyISAM file: mysql/columns_priv.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/db.MYI
Data records:       9   Deleted blocks:       1
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2

---------

Checking MyISAM file: mysql/func.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/help_category.MYI
Data records:      36   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2

---------

Checking MyISAM file: mysql/help_keyword.MYI
Data records:     401   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2

---------

Checking MyISAM file: mysql/help_relation.MYI
Data records:     825   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/help_topic.MYI
Data records:     475   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2
- check record links
         
---------

Checking MyISAM file: mysql/host.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/proc.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
         
---------

Checking MyISAM file: mysql/procs_priv.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2

---------

Checking MyISAM file: mysql/tables_priv.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check data record references index: 2

---------

Checking MyISAM file: mysql/time_zone.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/time_zone_leap_second.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/time_zone_name.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/time_zone_transition.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/time_zone_transition_type.MYI
Data records:       0   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1

---------

Checking MyISAM file: mysql/user.MYI
Data records:      16   Deleted blocks:       0
- check file-size
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
         
---------

...

바로 다시 응답을 시작하는 것은 아니었고, 조금 기다리고 보니 응답을 다시하기에 아 고쳐졌나보군... 하면서 다시 사용하고 있다. -0-
(현업에서 이렇게 처리하면 난리나겟지만.. ㅋㅋㅋ)


Trackback 0 Comment 0

MySQL 코드셋 변경

크리에이티브 커먼즈 라이선스
Creative Commons License
/etc/my.cnf
[client]default-character-set=utf8[mysqld]default-character-set=utf8[mysqldump]default-character-set=utf8

JDBC Driver URL
jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=UTF8

현제 문자셋 정보 보기
show variables like 'c%';- 결과

character_set_client : utf8character_set_connection : utf8character_set_database : utf8character_set_results : utf8character_set_server : utf8character_set_system : utf8character_sets_dir : /usr/share/mysql/charsets/collation_connection : utf8_general_cicollation_database : utf8_general_cicollation_server : utf8_general_ci

이미 생성된 DATABASE의 문자셋 바꾸기
mysql> SET character_set_client = utf8;mysql> SET character_set_results = utf8;mysql> SET character_set_connection = utf8;mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET utf8;

이미 데이터가 들어간 테이블의 문자셋 변환
create table test (merong varchar(20) collate latin1_general_ci);이렇게 만들어진 테이블에 한글 데이터를 넣은 후 필드를 euckr 로 변경하려면다음처럼 해야 합니다.alter table test modify merong binary(100);alter table test modify merong varchar(20) collate euckr_korean_ci;binary 로 바꾸면 문자셋 특성이 사라지기 때문에 이런 변환과정을 거쳐야합니다(메뉴얼에 의하면). 그냥 바꾸면 문자들이 손상됩니다.참고글기존 EUC-KR 데이타를 4.1.x로 옮기기
참고글

Trackback 0 Comment 0