글검색결과 [업데이트] : 5

  1. 2007/03/09 MySQL 4.0 > MySQL 4.1 > MySQL 5.0 [on FreeBSD] (6)
  2. 2007/02/17 태터툴즈 업데이트 + 스킨 변경
  3. 2006/06/30 :+: 최근 동정 :+: (4)
  4. 2006/05/30 지하철 수정
  5. 2006/05/28 RFC 패치

MySQL 4.0 > MySQL 4.1 > MySQL 5.0 [on FreeBSD]

Category :: 운영체제/FreeBSD


  Oper.or.kr 서버에는 FreeBSD 6.1-Release 와 MySQL 4.0 을 사용하고 있었습니다. 그런데 가끔 이것저것 설치할 때마다 MySQL 4.1 이상을 요구하는 것들이 많아지고 해서 이 기회에 MySQL 4.1 로의 업데이트를 예정하고 있었습니다. 그런데 5.0 까지는 괜찮다고 하는 소리가 있어 MySQL 5.0 으로 업데이트 하기로 하고 날짜를 잡고 오늘 새벽 1시 30분 작업을 시작했습니다.
  혹시 이 문서를 참고하여 MySQL 을 업데이트 하고자 하시는 분은 먼저 끝까지 훑어보신 뒤 참고하시기 바랍니다.

  우선 아래 명령어를 이용하여 각각의 데이터 베이스를 백업 받습니다.
# mysqldump --add-drop-table --flush-logs -pROOT_PASSWORD --quote-names EACH_DB > EACH_DB.sql

  그리고 혹시 모르니 데이터 디렉터리를 째로 복사해서 백업하고, 서비스를 종료합니다.
# cp -R /var/db/mysql /var/db/mysql_backup
# /usr/local/etc/rc.d/mysql-server stop

  자 우선 MySQL 4.0 을 삭제하고 MySQL 4.1 을 설치합니다. 혹시 /etc/my.cnf 가 있다면 삭제해 줍니다.
# cd /usr/ports/databases/mysql40-client
# make deinstall
# cd /usr/ports/databases/mysql40-server
# make deinstall
# rm -f /etc/my.cnf
# cd /usr/ports/databases/mysql41-server
# make install WITH_CHARSET=euckr WITH_LINUXTHREADS=yes

  설치를 정상적으로 마쳤다면 아래 명령어로 MySQLd 를 safe 모드로 실행시키고, 무언가(?)를 fix 합니다. 그 다음 데몬을 사알짝 종료시킵니다.
# mysqld_safe --skip-grant-tables --user=mysql &
[1] 1234
# mysql_fix_privilege_tables --password=ROOT_PASSWORD
# kill -9 1234

  자 이제 MySQL 을 시작하고, 백업한 데이터를 각각의 디비에 복원합니다.
# /usr/local/etc/rc.d/mysql-server start
# mysql -pROOT_PASSWORD EACH_DB < EACH_DB.sql

  복원을 마쳤으면 MySQL 4.0 에서 MySQL 4.1 로의 업데이트가 끝났습니다. MySQL 4.1 까지 업데이트 하고자 한다면 이까지의 작업만 행하면 됩니다.

  이제 MySQL 5.0 으로의 업데이트를 시작합니다. MySQL 4.1 로의 업데이트와는 달리 가볍게 컴파일과 설치만 해주면 됩니다.
# /usr/local/etc/rc.d/mysql-server stop

# cd /usr/ports/databases/mysql41-server
# make deinstall
# cd /usr/ports/databases/mysql41-client
# make deinstall

# cd /usr/ports/databases/mysql50-server
# make install WITH_CHARSET=euckr WITH_LINUXTHREADS=yes

# /usr/local/etc/rc.d/mysql-server start

  처음 해보는 업데이트인지라 여러 시행착오도 많았고, 난관도 많았지만 우여곡절 끝에 마무리를 다 지었습니다. 사실 위에 기술한 것 외에 세부적으로 한 것들이 많지만, 시시각각으로 달라지는 것들이라 전부 적지는 않았습니다.
  그 중 한가지를 말하자면, 저는 인코딩을 euckr 로 사용하고 있습니다만, 태터툴즈 등을 사용하기 때문에 디비 안의 일부 테이블에는 utf8 자료가 꽤나 들어있습니다. 이렇게 하나의 디비에 euckr 과 utf8 데이터가 모두 들어있다면 백업을 테이블 단위로 하는 것이 현명한 방법입니다. 대신 백업을 하면서 어떤 테이블에 euckr 가 있고 어떤 테이블에 utf8 가 있는지 정도는 미리 알아야 합니다. 복원할 때 --default-character-set=utf8 과 같은 옵션을 주어야 된다는 점을 잊지 마시고요.
  전 백업을 잘못해서 MySQL 4.0 만 세번을 다시 깔았는데요. 역시 그 중 한가지를 들어보자면 mysqldump 옵션 중에 --quote-names 옵션을 빼먹어서 나중 복원할때 필드명이 예약어인 것들이 걸리면 에러를 수억개 발생시키곤 했습니다.

  처음부터 계획(?)을 확실하게 세워 저처럼 3시간 동안 고생하는 일이 없도록 합시다;

참고 문서 :
http://annyung.oops.org/?m=white&p=mysql41 (AnNyung Official Homepage)
http://krug.or.kr/forums/viewtopic.php?pid=121 (한국 레드햇 사용자 모임 포럼)

2007/03/09 05:10 2007/03/09 05:10

태터툴즈 업데이트 + 스킨 변경

Category :: 일상생활


  드디어 설 연휴가 다가왔습니다! 이게 제게 특별나게 무엇을 뜻하는 것은 아닙니다만.. 대한민국에서는 설과 추석이 국민의 명절이라고 모두 약간의 변화를 추구하곤 합니다. 따라서 그 분위기에 묻어가고자, 저는 한동안 무관심 속에 던져두었던 블로그에 약간의 변화를 주었습니다.
  1.   일기장 블로그에서는 1.1.1 버전을 사용하고 있었는데, 언젠가 잠결에 제 블로그가 우는 소리가 들려 확인해보니 태터툴즈 0.9.x 버전을 사용하고 있었습니다. 그래서 0.9.x 버전에서 1.1.1 버전으로 업그레이드를 감행했습니다. 첨부파일과 디비를 제외한 모든 디렉토리를 삭제하고, 새 버전의 태터툴즈를 받아 압축해제 후 적용시켰습니다. 이 과정은 이제 능숙합니다.
  2.   태터툴즈 1.1.1 에서 마음에 드는 부분은 사이드 메뉴입니다. 그동안 스킨을 직접 수정해서 넣어야 했던 구글 광고 따위들을 플러긴을 이용하여 바로바로 넣을 수 있다는 것이 엄청난 매리트 입니다. 흐흐;
  3.   업데이트를 마치고 훑어보니 글 분류가 많긴 한데 실속이 없고 너저분 합니다. 각각의 글의 내용은 수정하지 않는 조건으로 카테고리를 합하고 새로이 정렬하여, 한층 더 분류를 확실히 했습니다. (이 과정에서 그동안 비공개로 두었던 글도 몇개 나왔습니다.);
  4.   하는김에 태그도 심하게 세부적인 것은 정리했습니다. -ㅇ-
  5.   태터툴즈도 최신 버전으로 업그레이드 했고, 글도 정리했는데 뭔가 허전합니다. 별로 눈에띄는 변화가 없으니 사람들이 들어왔다 그냥 나갈 듯하여, 수개월간 침채된 분위기도 전환할 겸 새로운 스킨을 찾아 적용했습니다. 항상 그렇듯이 '깔끔하고 간결한 것이 오래봐도 질리지 않는다.'라는 주의에 의해 지금 쓰고 있는 이 스킨을 선택하였습니다. 물론, 귀찮아서 눈에 보이는 것 아무거나 찍었 대부분의 스킨들을 한번씩 적용해보고 결정한 것 입니다!
  6.   최근 수개월 동안 블로그는 뜸했지만 일기장은 꾸준히듬성듬성 작성하고 있었습니다. 그런데 한가지 문제가 생겼습니다. 일기장 주소는 http://ik.oper.or.kr/diary/ 이고 블로그 주소가 http://ik.oper.or.kr/blog/ 인 관계로 두군데 동시에 접속할 경우 약간의 충돌이 발생합니다. 그래서 주소를 블로그 주소를 살짝 변경ㅡconfig.php와 .htaccess 수정ㅡ하여 http://blog.ik.oper.or.kr/ 로 결정했습니다. 물론, 기존 주소ㅡhttp://ik.oper.or.kr/blog/에서 redirect 시켜놓았습니다. :D
  7. 다 되었겠다 싶어 글 작성을 마치고 다시 로그인 하는데 문제가 생겼습니다. 쿠키와 세션이 맞물려 이런저런 뽕짝을 이루어 낼줄은 생각도 못했는데... -_-; 로긴이 안되길래 비밀번호가 틀렸나 해서 이것저것 다 넣어보았으니 계속 로그인이 안되더군요. 그래서 mysql 접속해서 유저 비번을 찾아 리셋해주고ㅡUPDATE tt_Users SET password='**' WHERE loginid='xx@gmail.com';ㅡ 등등 여러 삽질을 했으나 결과는 같습니다. 이번엔 세션을 어디에 저장하는지 찾아 세션을 싸악 지워ㅡDELETE FROM tt_Sessions;ㅡ줍니다. 그래도 안되는.. ㅜ_ㅠ 자 이번엔 Firefox 에서 쿠키를 찾아 지워줍니다. 오홋! 이제 로긴이 무난하게 됩니다. 랄라~♬
  자 이제 모든 준비는 마쳤습니다! 이제 다시 블로거로서의 한발을 내딪으며 Go, Go, GO~!
2007/02/17 16:32 2007/02/17 16:32

:+: 최근 동정 :+:

Category :: 일상생활


:+: 때아닌 mIRC 봇 스크립팅 :+:

  토요일 새벽에 축구를 보고 낮잠을 자고 일어나 일요일 자정이 넘어선지 얼마되지 않은 시간.. 심범님이 mIRC 봇 스크립트를 만들어 달라는 소리에 낚여서 mIRC 스크립트를 만들기 시작했습니다. 예전에 것을 수정한다거나 그런건 꿈도 못꾸고.. 예전에 만든 것들이 확장성이나 ACL 을 잘 따져서 만든 것도 아니니 엄밀하게 말하면 쓸래야 쓸 수 없는 것들이라 싹 새로 만들기로 마음먹고 SugarCube 를 모태로 한 (즉, python > mIRC script 변환 작업) 스크립트를 작성하기 시작했습니다.
  core.ini 에서는 config.ini 의 [IRC] [logging] [#채널] 정보를 불러와서 서버에 접속 및 채널에 입장하도록 하였습니다. 눈에 익은 분들은 아시겠지만 SugarCube 의 config 파일을 그대로 쓸 수 있습니다. =.=
  hdl_commandifc.ini 에서는 명령어가 입력되면 등록된 것인지 확인해서 등록된 것이면 명령을 내린 사용자의 인증 정보를 불러와서 ($authtbl.load($nick)) 계정 정보를 불러와 ($userdb.load($authtbl.account()) 명령어에 해당하는 alias 로 넘겨주도록 했습니다. 이곳에는 showcommands 명령어!
  hdl_administrate.ini 에는 기본적인 명령어들을 넣어뒀습니다. (act die hello join op opall part reload say) 물론 레벨의 검사는 하고요.
  hdl_usercontrol.ini : 여기가 제일 중요한 부분입니다! (나중에 스크립트를 받아서 분석해 보실 분들만 아시겠지만) 그만큼 시간을 많이 투자했고 고민했고.. 명령어는 acl login logout 달랑 세개 들어갔지만요. -.-
  우선 만들면서 처음 생각했던 부분이 지난번 만든 것은 SugarCube 와 비교했을 때 겉만 비슷하고 속은 엉망이였기에 이번엔 겉과 속 모두 비슷하도록 만드려고 애
2006/06/30 05:59 2006/06/30 05:59

지하철 수정

Category :: SugarCube


  새벽에 SeoulSubway 플러그인 중 '막차' 명령어를 '지하철' 명령어와 통합했습니다. 하지만 기존에 막차 명령어에서 지원되지 않던 용산~덕소 구간과 보정을 입력할 경우 막차 정보가 출력되지 않습니다. 또, 잘못된 역을 입력할 경우 '역 이름을 정확히 입력하세요.' 라는 에러가 출력되던 것을 이번 패치를 통해 '역 이름이 잘못 되었습니다. : ㅇㅇ' 라고 뜨도록 하였습니다. 그런데 조만간 모든 플러그인의 Usage 업데이트로 인해 또 업뎃될 듯 합니다. -.-

플러그인 수정하면서 느낀점:
  1. 어지간히 수정해서 잘 되면 백업을 해두던가 그냥 컴밋하자.
  2. 잘 돌아가는 코드를 깔끔하게 정리한다고 들추지 말자.
  3. 도발적인 상상은 자제하자.

<@익현˛♡¸> -지하철
<+SugarCube> Usage: -지하철 <출발역> <도착역> (수도권 지하철만 조회되며, 막차 시간은 평일을 기준으로 합니다.)
<+SugarCube> (요금은 일반인 교통카드 기준입니다. 청소년은 80%, 어린이는 20% 요금이며, 현금 승차시는 100원이 추가됩니다.)

<@익현˛♡¸> -지하철 신촌 신천
<+SugarCube> [2호선 신촌 -> 2호선 신천] 총 40분 소요 / 경유 20 역 / 1000 원 / 거리 19.8 ㎞ / 23시 58분 막차
<+SugarCube> [신촌] ==(2호선/40분)==> [신천]

<@익현˛♡¸> -지하철 천안 덕소
<+SugarCube> [1호선 천안 -> 1호선 덕소] 총 180분 소요 / 경유 46 역 / 2400 원 / 거리 117.9 ㎞
<+SugarCube> [천안] ==(1호선/108분)==> [용산] ==(1호선/58분)==> [덕소]

<@익현˛♡¸> -지하철 천안 아산
<SugarCube> 역 이름이 잘못 되었습니다. : 아산
2006/05/30 23:33 2006/05/30 23:33

RFC 패치

Category :: SugarCube


  지금까지 코드의 오류로 동작하지 않던 RFC 플러그인을 새벽에 패치했습니다. 리비전 1.3 에서 수정하여 제대로 동작하도록 할 방법이 없을까 하고 민성님과 83.2 초 고민했으나 결론은 리비전 1.2 으로 롤백하고 거기서 약간의 수정만 하여 1.4 로 컴밋하기로 했습니다.
  따라서 RFC 플러그인은 기존과 동일한 방식으로 동작할 것이며, 사용법에 대한 설명이 미약하게 추가되었습니다. (rfc 명령어는 초기에 다운로드 받은 것에서 rfcindex 명령어를 한번 이상 실행시킨 후에 사용하셔야 합니다.)

RFC - rfc:
<@익현˛♡¸> -rfc
<+SugarCube> Usage: -rfc <옵션> <쿼리> (보다 자세한 것은 -rfc help 를 참고하세요.)
<@익현˛♡¸> -rfc help
<+SugarCube> : -rfc s <단어> <단어> .... : RFC에서 찾습니다.
<+SugarCube> : -rfc S <정규식> : RFC에서 정규식으로 찾습니다.
<+SugarCube> : -rfc v <번호> : 해당 RFC의 정보를 봅니다.
2006/05/28 19:42 2006/05/28 19:42

 이전  1   다음