Mysql update 이후 Data 복구가 안되네요...
mysql과 리눅스 공부를 시작한지 얼마 안된터에 모르는 것이 많네요...
일주일 넘게 kldp, superuser, database.sarang.net, google 여러 군데를 다녔지만 검색 실력이 딸려서 그런지 못찾아서 이렇게 질문을 올립니다!!!
기존에 mysql 5.0.22를 사용하다가 mysql 5.0.41로 최근에 업데이트를 했는데요,
mysqldump를 사용해서 백업해논 data를 복구 하려고 하니깐 안되네요...
질문들이 많은데요...
1. mysqldump -u root -p --all-databases >
이렇게 덤프를 했더니 덤프한 파일을 more로 보니깐 한글이 깨져있더라구요...
아마도 character set 옵션인가를 다르게 주어야 하는걸로 알고 있는데요, 제가 알고 있는게 맞는지와 그리고 이렇게 한글이 깨진 파일을 복구하는 방법은 없는지 알고싶어요.
2. Mysql update 끝난 후에 mysql -u root -p < 를 통해 복구를 했는데요, 그 후에 웹페이지에서는
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/local/apache_2.0.58/htdocs/index.html on line 6
이러한 에러 메시지가 뜨구요, mysql에 접속을 해서
select * from ;
혹은
desc ;
을 치면
ERROR 1273 (HY000): Unknown collation 'euckr_korean_ci' in table
이러한 메시지가 뜨네요...
어떻게 하면 고칠 수 있을까요???...
P.S : O.S는 sulinux를 사용하고 있고,
mysql설치는 소스로 설치하였습니다!!!
에...
이전에 mysql에서 쓰신 character set 과 새로 까신 mysql 의 character set 이 같아야 합니다..
안그럼 고생좀 합니다;;
결국 모두 다 지우고,
결국 모두 다 지우고, mysql 5.0.41을 다시 깔고 character set이 같은 1년전 백업DB가 있어서 그걸로 복구 하려고 했는데,
마지막에 ERROR 1050 (42S01) at line 49501: Table 'columns_priv' already exists
위의 에러메시지가 뜨더군요...
아무래도 테이블구조가 1년 사이에 바뀐듯 한데요...
해결책 없을까요????
ERROR 1273 (HY000): Unknown
이 에러는 my.cnf나 설정이 잘못된 경우 입니다. 어쩌면 빌드시에 euc-kr 을 지원하지 않도록 빌드를 하셨든지요.
mysql> use
를 해서.. euckr 이 있는지 확인해 보세요.
관심가져주셔서
관심가져주셔서 감사합니다!!!
확인해봤더니 euckr이 없네요...
어떻게 하면 해결할 수 있을까요??
해결했습니다!!!
해결과정은 새로 설치한 mysql을 모두 다 지웠습니다.
(물론 mysql데몬 내리구요...)
그 다음에 받아놨던 mysql을 설치할 때 configure에서 --with-charset=euc-kr 옵션 추가해서 다시 설치했구요,
머 다음은 일반적으로 하는 make, make install하고, 소유권 바꿔주고, 다시 mysql 데몬 올리고 난 후 mysql 로그인 해서 윗분이 말씀해주셨던 euckr(character set)있는지 확인해봤더니 있더군요...
그래서 다시 최근 DB 복구 했더니 아무런 에러 메시지 없이 되더라구요...ㅋㅋ
그리고 홈페이지 확인했더니 역시나 깔끔하게 되더라구요...ㅎㅎ
암튼 이래저래 관심가져 주셔서 감사합니다!!!
좀 편법이긴
좀 편법이긴 합니다만,
iconv를 이용해서 encoding을 바꾸고
DB 덤프 파일(foo.sql.utf8)의 내용중에 다음 라인을 찾아서 euc-kr --> utf-8 로 바꾼후 mysql로 로드합니다.
DB 설정을 바꿀 수 없는 경우나, 인코딩을 변경하고 싶을 때 쓰면 될 듯합니다.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
댓글 달기