[김성민]님이 남기신 글:
>안녕하세요.
>
>다름 아니라,
>mysql dump 할때 말입니다.
>
>mysqldump -uxx..... > xxx.sql 같이 했다가
>mysql -uxx..... < xxx.sql 요런식으로 다시 인서트를 하게
되는데요.
>
>db 내용에 따라 가끔 인서트 오류가 나는 경우가 있어서
봤더니,
>
>insert into tablename values (1,2,'어떠구',2010-09-11...);
>
>이와 같이 필드타입이 문자가 아닌경우, 따옴표 처리가
안된상태로 sql 저장되더군요.
>
>insert into tablename values ('1','2','어떠구','2010-09-11'...);
>
>이런식으로 모든 값을 따옴표 처리를 해주면 잘
들어가는데,
>dump 한 그대로 인서트를 할때에는 문제가 좀
있더라고요.
>특히 db 내용에 게시판 내용물이라던가
하는 장문이 있으면 더 그러더라고요.
>
>mysqldump 를 할때 모든 값에 ' 따옴표 처리를 해서 저장할 수
있는 방법이 있는지.
>또는 dump & restore 할때 에러없이 할수 있는 팁이라도 있는지
해서 문의드립니다.
>
>수고하세요..
========================================
음... 이런 경우는 저도 처음보네요.
일반적으로 자료형이 숫자형이면 따옴표 없이 dump 되고 restore
시 잘 작동합니다.
0. 해당 DB 나 table 백업 해두시고
1. 우선 mysqldump 할 때 --opt 옵션을 주고 dump & restore 해보세요.
2. 1번 안되면 해당 칼럼(date 제외)을 숫자형이 아닌 타입(varchar
나 text)으로 강제로 바꾸어서 dump -> restroe -> 컬럼형을 다시
원복
3. mysql 서버 local 에서 dump 할 때 -T 옵션을 이용해서
mkdir dumpdir
mysqldump .... -T dumpdir --fields-enclosed-by="'"
이런식으로 시도해 보세요.
|