mysql 에러 메세지좀 봐주세요.

zummaz의 이미지

mysql를 이전하려고 하는데.

새로깐 mysql이랑 기존의 것이 버전 차이가 있어서.
mysqldump를 통해 이전이 하려고 하니.. 에러메세지가
뜨는데 이해가 쉽지가 않네요.. 물어볼때도 마땅히 없고 이곳에 다시
글을 올립니다. 조언 부탁드릴께요 감사합니다.

데이타 전체 백업하려고 합니다.

우선 이전 서버에서
./mysqldump --opt -u -root -p -all-databases > 파일명.sql

로 데이타를 백업했습니다. --opt옵션은 데이타중 같은 이름을 가진 테이블이 있다고 에러가 뜨길래.. 설정해 준거고요.

이 백업 파일을 옴겨서..

apm를 새로설치한 서버에서(mysql-4.1.11)

./mysql -u root -p < ./파일명.spl

enter password : *********

이런식으로 복구 하려고 하면

ERROR 1064 (42000) at line 542: You have an error in your SQL syntax; check the manual that corresponds to your MYSQL server version for the right syntax to use near '에ㅏ레 ( friend_name varchar(30) NOT NULL default ' ' , clud varchar(30) NOT N' at line 1

이런에러가 뜨네요.. sql 구문을 잘 모르겠고

기존의 것이 오래된 버전이라.. 버전 차이에 의한

syntax 에러라고 생각되서.. 방법을 달리해서

데몬죽이고 mysql 디렉토리명를 변경해준후

기존 서버의 /usr/local/mysql 전체를 tar를 이용해

tar cvfpz mysql.tar.gz mysql/ 로 묶고

그 파일을 가져와 새서버의 /usr/local/에 풀어주었는데

이번에는 데몬을 실행하려고 하니.

/usr/local/mysql/libexec/mysqld: error while loading shared libraries: libstdc++-libc6.2-2.so.3:
cannot open shared object file : No such file or directory

라는 에러메세지가 뜨네요

그리고 db들이 저장되는 디렉토리가. 기존의 것은 data고..

새로 이전하고는 곳은 var로 됐는데.. 디폴트값이 data인줄

알았는데 var 로 잡히네요..

이 둘 차이가 있으면.. 이전할때.. 경로때문에.. 문제 생기거나..

그러진 않을까요?? 정확한건.. 디비 옴겨지고 나서.. 게시판에

자료를 올려보면 알겠지만.. ^^;

읽어 주셔서 감사합니다. (--)(__)

우선 mysql만 잘 이전되면 한시름 놀거 같은데..
처음하는 작업이라.. 잘 모르겠습니다. 조언 부탁드릴께요..
그런데 리눅스라는 녀석 한번 잡으면 시간 때우기 좋네요..
다행이 셤기간이 끝났기에 망정이지 ㅡ.ㅡ;;

ssik425의 이미지

1.번 방법에서 에러가 나는것은 mysql 4.1이상 버전의 경우 기본적인 character-set이 utf-8이기 때문에 입력하려는 문자를 인지하지 못해서 생기는 문제입니다. 위 경우 iconv를 이용하여 dump받은 파일의 전체적인 character-set을 utf-8로 변경한후 입력해보시기 바랍니다.

2.번의 경우 절대 실행될 수 없는 방법입니다. 서버os 버전마다 사용하는
라이브러리의 버전이 동일하지 않기 때문입니다. rpm or source로 새로설치하여 data디렉토리만 교체하는 식으로 작업을 해야 합니다.

개발자들의 궁극적 비전은 ?

zummaz의 이미지

ssik425님 답변해 주셔서 감사합니다.

mysql 4.1 버전의 왠지 맘이 안들어서.

mysql 4.0.24 버전으로 새로 깔았습니다.

새로운 맘으로. 다시

./mysql -u root -p < ./파일명.sql

를 실행시키니..

이번에는

 ERROR 1064 at line 30904: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(10) default NULL, PRIMARY KEY (no)
) TYPE=MyISAM' at

라고 에러가 뜹니다.

아 정말 쉽지 않네요..

mysqldump 한 곳의 버젼은 MYSQL-3.23.55 이고요

이번에 새로 설치한 것은 MYSQL-4.0.24 입니다.

어서 빨리 홈페이지 게시판들이 정상적으로 운영되었음 좋겠습니다.

읽어 주셔서 감사합니다.

즐거운 하루 되세요^^

codebank의 이미지

음... 작은 문제점때문에 쉽게 이전을 못하고 있는듯하군요...

일단 문제가 발생한 부분의 SQL문을 이곳에 적어 놓아보시죠.
즉, 30904라인의 위로는 CREATE문으로부터 아래로는 TYPE=MyISAM부분까지를
이곳에 올려놓아보세요.(공개가 가능하시다면...)
그러면 좀더 직접적인 도움이 가능합니다.

P.S. : 만일 다음에 이전할 일이 발생하면 그때는 DATABASE별로 따로 백업을 해두는건
어떨까 생각되네요. 차후에 관리도 편리해지고 문제가 발생한 데이터부분만 빼고
임시적으로 홈페이지 운영이 가능하지 않을까 생각되서요... :)

------------------------------
좋은 하루 되세요.

zummaz의 이미지

글을 써주신 분들 모두 감사합니다.. 많은 도움이 되네요..

제가 해본 작업은

우선 4.1.11이 character-set이 utf-8이기 때문에 입력하려는
문자를 인지하지 못해서 생기는 문제라고 하시고 iconv를 이용하
여 dump받은 파일의 전체적인 character-set을 utf-8로 변경
한후 입력하라고 하셨는데 잘 이해가 안가서 4.0.24 버전으로
복구해 보려고 하고 있습니다.
현재 사용중인 버전은 mysql-3.23.55 입니다.

먼저 dump 를 하려고 할때는

./mysql -u root -p < ./파일명.sql


ERROR 1064 at line 30904: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(10) default NULL, PRIMARY KEY (no) 
) TYPE=MyISAM' at

라고 에러 메세지가 뜨고 있고요..

30904번째 부터의 구문은 다음과 같습니다.


 30900--    Table structure for table 'dol_as'
 30901--
 30902
 30903      DROP TABLE IF EXISTS dol_as;
 30904      CREATE TABLE dol_as (
 30905        no int(11) NOT NULL auto_increment,
 30906        name varchar(10) default NULL,
 30907        locate varchar(20) default NULL,
 30908        in_date date default NULL,
 30909        menu varchar(20) default NULL,
 30910        tel varchar(15) default NULL,
 30911        hp varchar(15) default NULL,
 30912        email varchar(100) default NULL,
 30913        comment text,
 30914        check varchar(10) default NULL,
 30915        PRIMARY KEY (no)
 30916  )     TYPE=MyISAM;
 30917    
 

=> 버젼 차이에 따른 syntax에러 같은데 수정할수 있을까요..
비슷한 양식의 구문이 반복되던데..

다음으로는 기존 서버의 /usr/local/mysql/data 데이타디렉토
리만 묶어서 새로설치한 곳에 가져와 /usr/local/mysql/data
로 잡아주는 방법으로 복구해 볼까 하고.. 옴겨 보았는데.
데몬도 잘 돌아가고 디비들도 잘 복구 된거 같습니다.

하지만.. 웹페이지의 게시판에서


Warning: mysql_result(): supplied argument is not a valid MySQL result resource in  ~~~~

또는 

ERROR in MYSQL Query 라고 경고 메세지 또는 에러가 뜨는데.
 

=>요청에 맞는 mysql이 아니라는 것 같고 요청에 맞는 데이타 베 이스를 보여줄수 없다는것 같은데..
이분분도 역시 vi 로 열어보니 mysql과 관련된 부분 같네요..

마지막으로 한발짝 물러서서 간밤에는 3.23.55버젼으로 깔아주고 우선 데이타만 복구하고 나중에 비젼 업데이트를 할 생각으로..
3.23.55를 설치하는 과정에서 make 를 해줄때.. 중간쯤 진행되다가오류 라고 하면
서 정상적인 진행이 안되네요.. 정확히 어떤 오류 였는지는 기억이
안나지만. 어디를 들어가고 나감 부분에서 *** [all] 오류 이런식
이었던거 같습니다. 정확하지는 않네요 ㅡ.ㅡ;
가능한 버전업을 하면서 복구 하고 싶은데..

=> 4.0 버젼일때는 make 부분도 잘 넘어가는데.. 왜 그런지
모르겠습니다. 기존의 것 즉 /usr/local/mysql 부분을
지워주고 실행한 것인데요.

역시 왜? 그런가가 중요한데.. 조언 부탁드릴께요 감사합니다.

즐거운 하루 되세요^^

incarnate의 이미지

혹시 모르지만 이렇게도 한번 해 보시죠... (db를 root로 dump했을 경우)

1. 우선 mysql에 접속합니다. (root로)

2. source (dump떠 놓은 파일 경로와 파일 이름)후 enter
- ex : source /home/backup/db.sql
* 끝에 ;를 붙이지 않습니다.

저도 전에 mysql 3.X --> 4.1로 옮길때 오류가 떠서 이런 방법으로 해결했던 기억이 있습니다.

* 전체 db가 아니라 특정 사용자와 특정 db라면 해당 계정 접속후 해당 use 해당db (enter)
source /home/backup/user.db

도움이 되었길 바랍니다.

좋은 하루 보내세요~

먹고 죽자~

zummaz의 이미지

말씀해 주신 방법도 있군요..

실행해 보니.. 디비들이 복구 되네요..

하지만 역시 웹페이지에서

supplied argument is not a valid MySQL result resource in 식으로 경고들이 ^^;

답변 감사해요.. 하나 더 배웠군요..

제 느낌으로는 디비는 정상적으로 복구 되는데 웹페이지에서
보여주는 설정에서 먼가 제가 모르는 것이 있는거 같아요..

좋은 주말 되세요.

즐거운 하루 되세요^^

codebank의 이미지

supplied argument is... 에 대한 검색을 실시하니 아래와 같은 문서가 나오네요.

http://www.karakas-online.de/EN-Book/warning-mysql_fetch_row-supplied-argument.html

어차피 mysql_error ()를 호출하면 어떤 원인인지 나올테니 한번 추적을 해보세요. :)

P.S. : 최초 SQL의 경우 DROP때문에 발생한 것같이 보이네요.
제가 덤프받은 DB에서는 DROP이라는 명령어가 없었는데(3.23.44) MySQL사이트에서
찾아보니
http://dev.mysql.com/doc/mysql/en/show-warnings.html
이런 방식으로 경고를 주기는 한다고 합니다.
어쨌든 명확한 해결방법은 아닌것 같네요. :oops:

------------------------------
좋은 하루 되세요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.