MySQL 3.28.xx 버전에서 5.1.xx 버전으로 데이터이전

현재 학과서버를 작업하고 있는데… 다른 것은 상관없는데, 이놈의 MySQL이 문제입니다.
기존에 운영되고 있던 MySQL서버가 3.28.xx 버전인데, 어떻게 옮길까 고민중입니다;;;
더군다나 학과서버가 구축한 뒤로 7년간 거의 방치되다 시피 운영되었는데… 이놈이 하드디스크가 문제가 있는지 ssh로 과하게 작업을 하면 한 번씩 멈춰버립니다…ㅡ.ㅡ;;;
그래서 마구 작업을 하진 못하고 있다는…ㅠ^ㅠ;

혹시 MySQL 3버전 대에서 5버전대로 이전할 때 고려해야할 사항이 무엇무엇이 있을까요;;;

어차피 mysqldump로는 해결할 수 없을 것 같구… 검색해보니까… DB Engine문제로 아마 바로 복구는 안될 것 같더군요;;
외부의 툴을 이용하던지 해야할 것 같은데;

혹시 이런 이슈에 대해서 조언해주시면 감사하겠습니다~~;;

읽기를 하더라도 하드가 뻗어버리나요?

만약 괜찮으면 외장하드달고 mysqldump 사용하는 것이 제일 간편할 것 같은데요 ;;

[quote="pukakk":2dknq7kz]읽기를 하더라도 하드가 뻗어버리나요?

만약 괜찮으면 외장하드달고 mysqldump 사용하는 것이 제일 간편할 것 같은데요 ;;[/quote:2dknq7kz]

mysqldump 자체는 문제가 아닌데… 아마도 5.x 버전대의 mysql에 다시 복구할 때 문제가 발생할 것 같더군요;;;ㅋㅋ(관련 문서들을 찾아보니까 문제가 발생할꺼라는 뉘앙스더라구요;;ㅋㅋ영문이라 정확하진 않지만;:wink:

어려운것없어요.
euc-kr로 되어 있을텐데 default-charset=latan1 옵션을 줘서 하면 될것같네요
언어셋팅만 잘 주면 되요.

  1. 무식하게 sql 형식으로 output 후 5.1 형식으로 전부 수정
  2. mysql 3.28 과 호환되는 다른 DB 로 변환 후 그걸 다시 mysql 5.1로 변환

저는 무식하게 sql 문장으로 다 받아서 에디터로 검색-치환하는 노가다 방법으로 일일이 수정했습니다.
password 타입을 사용했던 부분은 쉘로 암호 다시 만들어서 대입했구요 ㅜㅜ.

[quote="r00t":25kuqixy]1. 무식하게 sql 형식으로 output 후 5.1 형식으로 전부 수정
2. mysql 3.28 과 호환되는 다른 DB 로 변환 후 그걸 다시 mysql 5.1로 변환

저는 무식하게 sql 문장으로 다 받아서 에디터로 검색-치환하는 노가다 방법으로 일일이 수정했습니다.
password 타입을 사용했던 부분은 쉘로 암호 다시 만들어서 대입했구요 ㅜㅜ.[/quote:25kuqixy]

노가다를 하셨네요 ㅎ
my.cnf에서 old_passwd=on 하면 해결되고요
3.x을 5.1형식으로 어떻게 바꾸는건지 이해 안될정도의 노가다를 했나보네요

mysqldump -p 계정 --default-character-set=latin1 > 계정.sql 이렇게만하면 끝나요.

[quote="1111":6rwrymy7]
my.cnf에서 old_passwd=on 하면 해결되고요
3.x을 5.1형식으로 어떻게 바꾸는건지 이해 안될정도의 노가다를 했나보네요
mysqldump -p 계정 --default-character-set=latin1 > 계정.sql 이렇게만하면 끝나요.[/quote:6rwrymy7]

3.x 버전 mysql에서

[code:6rwrymy7]mysqldump -u root -p --default-character-set=latin1 -A > 20110107.sql[/code:6rwrymy7]

로 백업한 다음에

5.1 버전 mysql에서

[code:6rwrymy7]mysql -u root -p < 20110107.sql[/code:6rwrymy7]

로 복구를 시도하니…

Syntax 에러가 발생하네요;;; 쩝;; 그냥 포기하기도 애매하고;; 일일이 수동으로 옮기자니 그것도 좀 그렇고;;

[quote="simplism":39ph4v7j][quote="1111":39ph4v7j]
my.cnf에서 old_passwd=on 하면 해결되고요
3.x을 5.1형식으로 어떻게 바꾸는건지 이해 안될정도의 노가다를 했나보네요
mysqldump -p 계정 --default-character-set=latin1 > 계정.sql 이렇게만하면 끝나요.[/quote:39ph4v7j]

[code:39ph4v7j]mysqldump -u root -p --default-character-set=latin1 -A > 20110107.sql[/code:39ph4v7j]
[/quote:39ph4v7j]

이론… 복구 할때도 마찬가지로 아래와 같이 언어셋을 써야해요.

mysql -u root -p --default-character-set=latin1 < 20110107.sql

[quote="1111":3u6jsyse]
이론… 복구 할때도 마찬가지로 아래와 같이 언어셋을 써야해요.

mysql -u root -p --default-character-set=latin1 < 20110107.sql[/quote:3u6jsyse]

쩝;;ㅋㅋ 아쉽지만 그냥 포기해야겠네요;ㅋ 마찬가지로 Syntax 에러랍니다.ㅠ^ㅠ;
일단 더 찾아봐야겠네요;;ㅋ

[quote="1111":1snxlpvc]어려운것없어요.
euc-kr로 되어 있을텐데 default-charset=latan1 옵션을 줘서 하면 될것같네요
언어셋팅만 잘 주면 되요.[/quote:1snxlpvc]

궁금한 것이 있는데요. euc-kr 로 저장된 데이터인데 왜 덤프 뜰 때에 latan1 으로 하는건가요?
euc-kr 로 덤프뜨면 안되는 것인가요?

[quote="jiggol":3483kqmu]
궁금한 것이 있는데요. euc-kr 로 저장된 데이터인데 왜 덤프 뜰 때에 latan1 으로 하는건가요?
euc-kr 로 덤프뜨면 안되는 것인가요?[/quote:3483kqmu]

제가 알기로는 mysql 3버젼에서 charset 지원이 완전하지 않았던 것으로 알고 있습니다. 그래서 euc-kr 등에 존재하는 비ASCII 문자들을 일단 latin1으로 저장하고, 나중에 클라이언트에서 작업할 때 latin1 <-> euc-kr등으로 변환 했던 것으로 기억해요.

그래서 구버젼의 mysql을 마이그레이션할때는, 일단 latin1으로 덤프하여 임포팅한다음에 euc-kr로 변환시키는 것을 권장하더라고요.