bbong blog : 위치로그 : 태그 : 방명록 : 관리자 : 새글쓰기
bbong blog 블로그에 오신것을 환영해요^^
방명록에 글 남기기!!
26
132
149418
'Linux/Mysql'에 해당되는 글 21건
mysql 자동실행 설정

/usr/local/mysql/share/mysql/mysql.server 를  /etc/init.d 에 mysqld 로 복사. 

# chkconfig --add mysqld 
# chkconfig --level 2345 mysqld on 
# chmod 755 /etc/rc.d/init.d/mysqld
이제 ntsysv 에 보시면 mysqld 가 추가되어 있음

[root@localhost httpd-2.2.14]# chkconfig --list | grep mysqld

mysqld           0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제


아파치는 이쪽
http://www.bbong.net/340

위로
mysql> status

mysql> show variables like 'char%';

mysql> show character set ;

위로
checking "LinuxThreads"... "Not found"
configure: error: This is a linux system and Linuxthreads was not
found. On linux Linuxthreads should be used.  Please install Linuxthreads
(or a new glibc) and try again.  See the Installation chapter in the
Reference Manual for more information.

메시지 출력시

이문제는 mysql-4.0의 NPTL 의 안정성을 너무 고려한 나머지 발생한 버그로 다음과 같이 변경해서 컴파일 하면 해결할수 있습니다.

우선 echo '/* Linuxthreads */' >> /usr/include/pthread.h
를 통해서 헤더파일을 수정하고

두번째로 컵파일시 아래와 같이 옵션을 추가해서 컴파일 하면 오류없이 mysql을
설치하실수 있습니다.

옵션 2개 추가해서 설치 ( 기존꺼+)
--with-pthread --with-named-thread-lib=-lpthread

위로
show processlist;

위로
Mysql 4.1이상버전에서 4.0 으로 다운그래이드시 데이터 이동법

백업받을 서버에서 백업
./mysqldump -u{UserID} -p{PASSWORD} {DbName} {TableName} --default-character-set=euckr > {DumpFileName}

;Dump시에 캐릭터셋이 utf인가 모시깽인가로 되서 한글이 깨져서 나오더군요. 그래서 캐릭터셋을 지정을 해줘서 dump를 받습니다.

 

데이터 넣을 서버에서

#wget http://DomainName/{DumpFileName}
: 파일 받기

 

#vi {DumpFileName}
:vi editor를 열어서 아래의 CharterSet 부분 삭제
"DEFAULT CHARSET=euckr "

 

#mysql -u{UserID} -p{PASSWORD} {DbName} < {DumpFileName}


4.1 서버에서 dump 받으실때. --compatible=mysql40 옵션을 주시면. 4.0 버젼에 맞게 변형되어 백업이 받아집니다.  


mysql4.1.x -> mysql4.0.x 로 옮기기
리눅스_디비서버 2006/05/22 13:57  
mysql 4.0.x 버전에서 4.1.x 버전과 character-set이 달라서 데이터를 이전할때 고생하시는 분들이 많습니다.  
4.0.x 버전에서 4.1.x 버전으로 업그레이드 하는 문서는 많지만, 다운그레이드에 관한 문서는 별로 없어서 저도 고생을 좀 했습니다. ^^  

1. 4.1에서 덤프 받을때 --default-character-set=euckr 옵션을 주고 덤프 받는다.

# /usr/local/mysql/bin/mysqldump --default-character-set=euckr -u xxx -p xxx > xxx.sql

2. 덤프받은 xxx.sql 파일을 vi 편집기로 열고 편집

" DEFAULT CHARSET=euckr" 삭제       :%s/ DEFAULT CHARSET=euckr//g
" collate euckr_bin" 삭제                     :%s/ collate euckr_bin//g
euckr -> euc_kr로 변경                       :%s/euckr/euc_kr/g

3. xxx.sql을 4.0이하 버전에서 복구

# /usr/local/mysql/bin/mysql -u xxx -p xxx < xxx.sql



==================

mysqldump --create-options --compatible=mysql40 -uroot -p비밀번호 


백업받을 서버에서 백업
./mysqldump -u{UserID} -p{PASSWORD} {DbName} {TableName} --default-character-set=euckr > {DumpFileName}

;Dump시에 캐릭터셋이 utf인가 모시깽인가로 되서 한글이 깨져서 나오더군요. 그래서 캐릭터셋을 지정을 해줘서 dump를 받습니다.



데이터 넣을 서버에서

#wget http://DomainName/{DumpFileName}
: 파일 받기



#vi {DumpFileName}
:vi editor를 열어서 아래의 CharterSet 부분 삭제
"DEFAULT CHARSET=euckr "



#mysql -u{UserID} -p{PASSWORD} {DbName} < {DumpFileName}


4.1 서버에서 dump 받으실때. --compatible=mysql40 옵션을 주시면. 4.0 버젼에 맞게 변형되어 백업이 받아집니다.

http://cafe.naver.com/himss.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=658 
네이버에 Mysql 4.1이상버전에서 4.0 으로 다운그래이드 검색해서 보면됨

위로
mysql4.1은 4.0에 비하여 user, db 테이블의 컬럼에 collate utf8_bin, character set utf8 옵션등이 추가가 되었다.
따라서 그냥  데이타베이스 디렉토리를 옮기고 실행할 수가 없다. 실행하면 character sete에 관련된 오류가 발생하고 바로 mysql이 죽는다.

# 오류 내용
060626 10:32:07 [Warning] './mysql/host' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
060626 10:32:07 [Warning] './mysql/user' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
060626 10:32:07 [Warning] './mysql/db' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
060626 10:32:07 [ERROR] Fatal error: mysql.user table is damaged or in unsupported 3.20 format.
060626 10:32:07  mysqld ended

그리고 user의 password 컬럼의 사이즈도 기존 16에서 41로 늘어났다.
이로 인해 /etc/my.cnf
[mysqld]
set-variable    = old_password=1
위의 변수를 설정해줘야 한다.

따라서 디비마다 덤프를 받아서 import를 시켜줘야 한다. 작업 순서는 아래와 같다.

1. 기존 운영중인 4.0.x 의 mysql 데이타베이스를 덤프 받는다.
# mysqldump -uroot -p mysql > mysql.sql
다음으로 mysql.sql파일을 열어서 user, db 테이블만 나누고 모든 라인을 삭제한다. 그리고 user, db 테이블 생성하는 것 구문도 없앤다. 마지막으로 남는 것은 user, db에 관련된 insert문만 남을 것이다. user의 insert문중 user컬럼중 root에 관련된 라인도 삭제한다. 이미 등록이 되어 있으므로...

2. mysql4.0.x의 전체 데이타베이스를 덤프를 받는다.
# mysqldump -uroot -pmysql --all-databases > database.dmp

파일을 열어서 mysql 및 test 데이타베이스와 관련된 테이블 생성 및 insert구문은 삭제한다. 이미 생성되어 있으므로..

3. mysql.dmp의 가장 상단에는
set foreign_key_checks=0;
하단에는
set foreign_key_checks=1;
옵션을 넣어준다. 이유는 이것을 하지 않을 경우 foreign key constraints옵션이 있는 테이블을 생성할 경우  foreign key를 체크하기때문에 foregin key 를 참조하는 테이블이 없으면 오류가 발생하고 중단된다.
따라서 이 옵션은 foreign key를 체크하지 않겠다는 것이다. 마지막은 원래대로 돌려놓는 것이다.

4. 기존 mysql4.0으로 운영중인것을 중지하고 mysql4.1대로 가동한다.
(참고 : /etc/my.cnf에서 default-character-set=euc_kr인것을  euckr로 변경해준다.)

5. 위의 mysql.sql, database.dmp를 각각 import시킨다.

6. 그리고 홈페이지에서 디비 접속이 제대로 되고 있는지 확인한다.

마지막으로 innodb는 mysqldump에 모두 들어가 있으므로 혹시라도 ibdata관련 파일을 복사하지 않도록 한다.





--------------------------------------------------------------------------------------

음 ... 어제하고 오늘 글 나눠서 올릴라고 했는데 너무 몰아서 올리네 ㄱ- ㅋㅋㅋㅋㅋ 이해해주세요 ~


이번에 알려드릴꺼는 MySQL 5.X버전대의 악조건 바로 패스워드입니다.


아시는분은 아시겠지만 MySQL 4.X버전대에서 5.X버전대로 옴겨오면서


패스워드방식이 바뀐걸로 압니다. 그래서 5.X버전대에서 4.x버전대를 요구하는 경우도 종종생기게되죠.


오류문 : Client does not support authentication protocol requested by server; consider upgrading MySQL client

이 문제를 해결할 방법은 두가지 입니다. 하나는 사용하시는 root 패스워드를 올드패스워드로 바꿔주는것이고


하나는 MySQL 버전을 다운그레이드하는 방법이 있습니다.


여기서 저는 첫번째 방법을 설명하도록 하겠사옵니다~


오토셋 화면에서 파일 - MySQL 콘솔창 을 클릭 해줍니다.


하셧다면 mysql> 이런상태로 명령프롬프트창이 뜰탠데요. 그상태에서


mysql>SET PASSWORD FOR 엔터

       ->'root'@'localhost' = OLD_PASSWORD('사용하시던비밀번호'); 엔터


이렇게 해주시면 오류없이 잘됩니다. 그리고 마무리로 mysql>FLUSH PRIVILEGES; 엔터 입력해주는 센스

 

다음으로

 

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('사용하시던비밀번호') 엔터
       -> WHERE Host = 'localhost' AND User = 'root'; 엔터
mysql> FLUSH PRIVILEGES; 엔터

 

위대로 실행합니다. ^^

마지막으로 exit 로 콘솔을 꺼주는 센수~

 

이제부터가 좀 힘들어지는데 ; ^^ 잘따라오세염 ~

MySQL을 꺼줍니다. (중요)

시작-실행-cmd 로 명령프롬프트를 실행하셔서

C:\AutoSet\Server\mysql\bin 폴더로 이동시켜줍니다.

----------방법1-----------

명령프롬프트를 켜시면 C:\Documents and Settings\Administrator> 이렇게 되어있으실탠데요.

C:\로 옴기시려면 C:\Documents and Settings\Administrator>cd .. 엔터

C:\Documents and Settings\>cd .. 엔터 이렇게 하시면

C:\> 이렇게 바뀝니다 . 이상태에서

C:\cd AutoSet\Server\mysql\bin 엔터 이렇게 해주시면 C:\AutoSet\Server\mysql\bin> 폴더로 잡히게 됩니다 ^^

-----------------------------

그리고 MySQL실행 옵션을 설정해서 MySQL를 실행시킵니다.

C:\AutoSet\Server\mysql\bin>mysqld-max-nt.exe --old-password 엔터

이렇게 하시면 키보드커서가

C:\AutoSet\Server\mysql\bin>mysqld-max-nt.exe --old-password

| 이렇게 깜빡이게 됩니다. 이렇게 하셧다면 성공! CMD창을 꺼주시구요.

다시 방법1대로 하셔서 C:\AutoSet\Server\mysql\bin> 이쪽폴더로 옵니다.

이제는 간단하게 mysql -uroot -p사용하시던비밀번호 엔터 하시면

아까 보셧던 콘솔창처럼 됩니다. (여기서오토셋에서콘솔창키면되지하시는데!안됩니다.저를따라오세염 ~)

mysql> SELECT localhost, root, 사용하시던패스워드 FROM mysql.user 엔터
       -> WHERE LENGTH(사용하시던패스워드) > 16; 엔터

이렇게 하셔서 오류가 없으시다면 성공입니다 ^^

 

이제부터 root는 올드패스워드를 사용하게됩니다. 사용하시는데에 이상은 없을꺼같구요.

5.X버전대에서는 올드패스워드를 한개만 지원하는거 같더군요.

4.X버전대에서는 무한개 가능하던데 ㅠㅠ 아무튼 이글보시구 모두들 오류없으시길 ~


위로
my.cnf
Date : 2009/04/21 13:54 (보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.)

mysql 4.0.27 설치시 에러 발생

에러메시지
checking "LinuxThreads"... "Not found"
configure: error: This is a linux system and Linuxthreads was not
found. On linux Linuxthreads should be used.  Please install Linuxthreads
(or a new glibc) and try again.  See the Installation chapter in the



해결방법
echo '/* Linuxthreads */' >> /usr/include/pthread.h


위로
[ MySQL 설치/사용시 나는 에러 유형별 대처방법 ]

1. ./configure 시에 에러가 날때..

증상 : checking for tgetent in -lncurses... no
checking for tgetent in -lcurses... no
checking for tgetent in -ltermcap... no
checking for termcap functions library... configure: error: No curses/termcap library found
[root@localhost mysql-4.0.13]# make
make: *** No targets specified and no makefile found. stop.

왜 이런 메세지가 뜨는건가요?

해결책 : gcc가 없던지 아니면 패스가 안잡혀있는 경우입니다.

증상2 : configure: error: no acceptable C compiler found in $PATH
바로위에 에러메세지가 뜨는데요.,,  설치를잘못한건가요?

[root@localhost mysql-4.0.13]make를 실행하니까..

make: *** No targets specified and no makefile found.  멈춤.
메세지가 뜨네요....

해결책2 : 리눅스에 gcc가 설치됐는지 확인해보세요.

rpm -qa|grep gcc

---------------------------------

2. 소스 설치시 NOTE: This is a MySQL binary distribution. 라는 메시지가 나오며

증상 : It's ready to run, you don't need to configure it! 나옵니다. 이유가?

해결책 : 바이너리를 받으셨네요. 컴파일이 필요없는.. 그러니깐 이미 컴파일한 겁니다.
걍 압축풀고 적당한 위치로 이동시키면 됩니다.

tar zxvf mysql-xx.xx.tar.gz
mv mysql-xx.xx /usr/local/
ln -s /usr/local/mysqlxx.xx /usr/local/mysql

---------------------------------

3. mysql을 실행하면 2번 에러가...

증상 : ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/m
ysql.sock' (2) 무슨 에러인지요?

해결법 : 데몬 구동시 ./safe_mysqld --user=mysql & 한번 해보세요.

그래도 에러가 나면 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 해보세요.

----------------------------------

4. mysql.sock 중에 40번에러가 뭐져?

증상 : ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/m
ysql.sock' (40)

해결법 : chown mysql.mysql -R /var/lib/mysql 를 하시기 바랍니다.

그리고 참고로 php에서의 mysql socket 은 /etc/php.ini 에서 경로를 수정할 수 있습니다.

--------------------------------

5. mysql 데몬이 죽어버릴때

증상: ./mysqld_safe & 실행했습니다.
    chown mysql .. <-- 비슷한 오류가 뜨면서 데몬이 죽어버립니다..

해결법 : 레드햇 리눅스라면 groupadd 와 useradd 에 '-r' 옵션을 사용해 보세요..

# useradd -r -d /usr/local/mysql mysql

이렇게 하면 500 보다 작은 UID, GID를 가진 mysql 그룹과
사용자가 생성됩니다.

-------------------------------

6. mysql 실행시 데몬 바로 죽음

증상 : 030527 22:33:39  mysqld started
030527 22:33:39  Can't start server: Bind on TCP/IP port: 주소가 이미 사용 중입니다
030527 22:33:39  Do you already have another mysqld server running on port: 3306 ?
030527 22:33:39  Aborting
030527 22:39:50  /usr/local/mysql/libexec/mysqld: Shutdown 이 완료됨!
030527 22:39:50  mysqld ended

해결법 : 3306 포트에 이미 다른 mysqld 가 실행되고 있습니다.

/mysql/scripts/mysql_config 을 열어서 포트번호 수정하세요.

-------------------------------

7. mysql-4.0.12 설치후 데몬이 안띄워지고 바로 죽네요..

증상 : 정상적으로 소스 설치하고 나서,,
   /usr/local/mysql/bin 에서 아래와 같이 실행하면,,, 데몬이 시작하자 마자 바로 죽습니다.
   ./safe_mysqld Starting mysqld daemon with databases from /usr/local/mysql/var
   mysqld ended

그래서 에러 메세지를 보기 위해 /usr/local/mysql/var 로 이동하여 도매인.err 파일을
열어보니,, 아래와 같은 메세지가 있더군요.

mysqld started
InnoDB: Started
Fetal error: Can't open privilege tables: Can't find file: ' ./mysql/host.frm'(errno: 13)'
Aborting

해결법 : mysql_install_db 스크립트를 실행해서 초기 테이블을 생성해야 합니다.

       ./mysql_install_db 하시면 됩니다.

------------------------------

8. mysql sock 에러 문제의 확실한 해결법

증상 : 접속하면 >/var/lib/mysql/mysql.sock 어쩌구 저쩌구 (111) 어쩌구 저쩌구..
머 이런 에러 나면서 접속 안되신 분들 많으실 겁니다.

해결법 : 문제는 간단합니다. 디렉토리 퍼미션 문제입니다.....

killall mysqld

chmod 755 -R /var/lib/mysql

chown mysql.mysql -R /var/lib/mysql

safe_mysqld --language=korean &

------------------------------

9. make 명령어를 실행하면 설치가 해제가 되거든요

증상 : make[2]: *** No rule to make target `ctype-euc_kr.lo', needed by `bmove_upp.lo'. 멈춤.

make[2]: 나감 `/usr/local/down/mysql-3.23.38/libmysql' 디렉토리

make[1]: *** [all-recursive] 오류 1

make[1]: 나감 `/usr/local/down/mysql-3.23.38' 디렉토리

make: *** [all-recursive-am] 오류 2

해결법 : 먼저 LD_LIBRARY_PATH에 모든 라이브러리 경로가 들어가 있어야 합니다.

이런 경우때문에 필요한 라이브러리를 찾지못해 에러가 납니다.

거의 필요한 패키지를 설치했는데도 에러가 나면

LD_LIBRARY_PATH를 확인해볼 필요가 있답니다.

------------------------------

10. mysql 설치시 gcc에러나는데 해결책 좀

증상 : 에러 내용과 커맨드는 아래와 같습니다.

# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr

checking for c++... c++
checking whether the C++ compiler (c++   ) works... no
configure: error: installation or configuration problem: C++ compiler cannot create executables.

해결책 : red hat 8.0 설치시 gcc,gcc++등 여러가지 설치가 안되는게 많더군요.

rpm으로 찾아서 다 설치하고 나서 컴파일 하면 됩니다.

rpmfind.net에서 찾으실 수 있습니다. 에러 보고 하나하나 다 설치하시면 됩니다.

------------------------------

11. 인스톨 설치도중 103 에러

증상 : an error occured move data process: -103
compenent : server
mySQL 4.0 설치할 때 잘되다가 이것되문에 설치가 안되네요..
이전에 깔았던 mySQL 3.23 때문에 그런지.. 영.. 모르겠네요.

해결책 : mysql이 설치된 폴더를 완전시 삭제하신 후에 다시 받으셔서 설치해보세요.

-----------------------------

12. mysql설치 시 invalid user 오류가..

증상 : chown: mysql: invalid user
Starting mysqld daemon with databases from /usr/local/mysql/data
030417 11:42:35  mysqld ended

데몬실행시 이런 에러가 뜨네요...
어떻게 해결하면 되죠?

해결책 : mysql 이란 유져가 유효하지 않다라는 에러로
현재 mysql이란 계정이 존재하지 않기때문에 나는 에러입니다.

설치하신 후 mysql이란 그룹과 유저를 생성해주시고
/usr/local/mysql/ 아래 디렉토리에 대한 권한도 주셔야 제대로 동작할 것 입니다.

-----------------------------

13. mysql 4.0.12 설치 시 "Check your system clock" 오류

증상 : mysql 4.0.12를 설치하는데...
> ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
이렇게 했는데 다음과 같은 메세지가 나옵니다.
checking build system type... i686-pc-linux
checking host system type... i686-pc-linux
checking target system type... i686-pc-linux
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... configure: error: newly created file is older than distributed files!
Check your system clock
왜 그런건지 알려주세요..

해결법 : mysql이 개발된 시간보다 현재시간이 늦어서(?) 생기는 문제입니다.

시간설정으로 간단히 해결할 수 있습니다.

인터넷(네트웍)이 되는 상황이라면
rdate -s time.nuri.net (잘못된 시간 설정을 올바르게 바꾸는 명령)를 하시고
(time.nuri.net <== 이부분은 다른서버를 이용하셔도 무방)
아니면 date 명령어로 시간을 현재시간으로 설정해주세요...

예) date 06111800 (6월 11일 저녁6시)

-----------------------------

14. 설치시 configure: error: no acceptable cc found in $PATH 에러

증상 : ./configure 하면 중간에
configure: error: no acceptable cc found in $PATH
이라는 글씨가 써지면서 멈춰버리더군요. 다른 버전을 설치해도 마찬가지입니다.

해결법 : cc 즉 c complier 가 없다는 말입니다

c 컴파일러가 PATH에 안잡혀 있을 수 있습니다. path를 추가하거나 gcc를 다시 설치하십시요.

-----------------------------

15. config시 ERROR: 1062 Duplicate entry 'localhost-root' for key 1

증상 : mysql 소스설치 config시
다음과 같은 에러가 나는데요..
rpm버전 삭제했는데 데몬이 살아 있나?
ps -ax | grep mysql 하면 암것도 안나오거든요.

ERROR: 1062 Duplicate entry 'localhost-root' for key 1
ERROR: 1062 Duplicate entry 'localhost-root' for key 1
030312 14:58:03 ./bin/mysqld: Shutdown Complete

해결책 : 캐시에 이전데몬이 살아있기 때문입니다.
kill 명령으로 프로세스를 완전히 죽이신 다음 다시 설치하시면 됩니다.

-----------------------------

16. configure 에러로 "error : No curses/termcap library found" 무슨 에러죠?

증상 : checking for termcap functions library...

configure: error : No curses/termcap library found

해결책 : libtermcap-devel-xxx 패키지가 필요해서 발생하는 에러입니다.

설치시디를 넣으시고 설치를 하시면 해결됩니다.

-----------------------------

위로
OS 를 fedora Core 6 에서 CentOS 5 로 바꿨더니 필요한 패키지가 없었다.

configure 시 오류 메세지
checking for termcap functions library... configure: error: No curses/termcap library found

기본 ncurses가 깔려있어도 오류가 나서 devel버젼을 설치했다.
[root@willow mysql-5.0.45]# yum -y install ncurses-devel
~ 생략~
=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
ncurses-devel           i386       5.5-24.20060715  base              1.6 M
~ 생략 ~

다시 configure 시도~ 성공~

위로