mysql 5.0 mysqldump 후 파일 깨짐

docskky의 이미지

mysql5.0 을 설치후 매일 mysqldump를 이용해 백업을 해왔습니다.
시스템을 새로 밀고 다시 리눅스를 설치하는데 한글이 깨져서 나옵니다.
뒤늦게 확인한 결과 백업한 화일들 역시 한글이 깨져서 볼 수가 없더군요.
저는 euckr을 기본으로 사용합니다.

CREATE TABLE `broadcast_info` (
....
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=euckr;

위와같은 테이블이 mysqldump 후 다음과 같이 나왔습니다.

SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `broadcast_info` (
....
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=euckr;
SET character_set_client = @saved_cs_client;

iconv 를 여러번 사용해 봤지만 깨진 한글을 복구하는데는 실패했습니다.

알고보니 기본 인코딩이 latin1인 것 같았고, euckr을 사용하지만 mysqldump에 아무 옵션을 주지 않으면
다른 코드로 인코딩 된다는 것을 깨달았습니다.

새로 세팅한 시스템에서 mysql변수가 다음과 같았고, 이전 시스템은 잘 모르겠습니다(같은 버젼과 같은 매뉴얼을 보고 설치하였습니다).

mysql> show variables like 'c%';
+--------------------------+-----------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.1.26/share/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+--------------------------+-----------------------------------------+
14 rows in set (0.00 sec)

이곳 포렘에서 검색을 해본뒤 비슷한 경우는 봤지만 아직 문제를 해결하고 있지 못합니다.
백업된 파일을 한번이라도 확인 해봤어야 하는데 초보라서 그런지 많은 실수를 저지르고 있습니다.
지금 수천명의 회원정보를 날리기 일보 직전입니다.
어떻게 자료만이라도 복구가 가능할까요?
제발 부탁드립니다.
문제만 해결된다면 계좌번호 알려주시면 10만원 정도 사례하겠습니다(가난해서 더 많이는 못드리겠습니다ㅜㅜ).

시노의 이미지

만약에 mysqldump 로 덤프하신 파일의 인코딩이 euc-kr 이면
덤프받은 sql 파일 맨 윗줄에

set names euckr;

만치시면 한글문제는 거의 해결 되더군요 ...

(단 mysql 에서 euckr 인코딩이 있어야 겠죠 ^^?)

저도 처음에 오래된 db 백업 하면서 많이 고생했죠 ㅋ

------------------------------------------------
Wanting someone more than looking at yourself is called addiction

------------------------------------------------
Wanting someone more than looking at yourself is called addiction

academic의 이미지

과거 버전에서는 mysqldump의 default-character-set이 latin1이었습니다. 그래서 굳이 설정하지 않아도 euckr 데이터가 별 문제 없이 dump되었습니다.

MySQL 4.1 버전부터는 디폴트값이 utf8로 변경되었습니다. 따라서 default-character-set을 euckr이라고 명시적으로 주지 않는다면 euckr로 저장한 데이터는 모두 깨어져서 dump되죠.

mysqldump을 할 때 다음처럼 하시면 될 겁니다.

mysqldump --set-charset --default-character-set=euckr ...

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

익명 사용자의 이미지

저도 동일 상태였는데,

mysqldump --set-charset --default-character-set=latin1 ...

위와 같이 옵션을 세팅하니 한글이 dump되더군요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.