Posts tagged ‘MySQL’

1년 프로젝트..

할 수 있을지 없을지 사실 잘 모르겠다만..

1년간 준비해서
내년 3월 즈음에는.. mysql을 최소로 줄여봐야겠다

대상은 postgresql 로.. 🙂
마이그레이션이 잘 될지 어떨지는 모르겠지만..; 해봐야지 뭐 ㅎ

이렇게라도 안하면 과연 할 까 싶기도 해서-_-;

mysql clustering 클러스터링 만들기

mysql clustering을 만들어 봅시다

일단 지금 사용하고 있는 데이터의 양을 계산을 하는 것이 먼저

1기가의 데이터가 저장되어있는 테이블이 있다라면 최소로 필요한 메모리는 약 3GB!!

3GB는 최소 사양.. 저기에 옵션이지만 replica를 돌리는 경우 + 3GB 하시고 데이터 늘어나거나 하는 것들 감안해서 1~2GB는 여유있게 마련을

replica 없이 구성을 하면 4~5GB replica가 있는 상태로 구성하면 7~8GB

시간이 지나고 아.. 데이터가 늘어난다
짠~ 하고 10GB가 되었음

위에 굵은 글씨의 메모리 용량에 10배를 해주세요

[……..]

삼성 반도체 아들이 설계 했나-_-;;

결론 : 재미는 있지만 (지금 입장에서는) 쓸모 없다

IT 로 취직 쉽게 하는 방법

먼저.. 지금 일을 하고 계신 분들께서 보시면 좀 까칠 하게 생각 하실 수 있습니다
그리고 완전 개인적인 생각이니 동의 안하시면 그냥 1박 2일 보세요 ㅋ 그게 더 즐거워요 ㅎ

IT로 돈 벌고 나름 잘 살아남기 위한 방법

1. 지금이라도 늦지 않았습니다. Java를 하십시오
이유 – 지금 MS 기술의 그늘에서 월급 받는 중이라면 상관이 없지만 만약에 지금 시작을 하려는 분이라면.. Java를 하십시오.. 일반 소비자 시장에서 잘 먹히는 C++ 및 각종 MS기술보다 대규모 기업시장에서 많이 쓰이는 Java가 내 주머니에 돈을 가져다줄 확률이 더 높습니다.. 특히 외국에 나갈 생각이 있다라면 Java쪽이 좀 더 유리 할 수 있습니다

2. Web 관련 언어를 하나 정도는 익혀 두는 편이 좋을 수 있습니다
이유 – 전통적인 어플리케이션의 위치가 나름 많이 줄어드는 것 같습니다. 결국 프로그램이 하는 일은  DB에 값을 넣고 저장되어있는 DB의 값을 불러와서 원하는 모양새로 보여주는 것이 대부분인데.. 유지보수 및 관리가 나름 쉬운 웹 기반으로 제작이 되는 경우가 많으니 완전 까막눈만 아닐 정도로는 알아두면 나중에 대처하기가 쉬울듯.. 사실 Java나 C++를 공부 했으면 php에 접근을 하기 매우 쉬울 꺼고 그냥 쉽게 적응 할 수도 있을테니 완전 배척만 하지 말아주세요 🙂

3. DB를 다룰 줄 알면 편합니다
이유 – 한국에서는 개발자가 DB설계도 하고 쿼리도 짜야하고 알아서 다 해야하는 경우가 있으니 더욱 더 -_-;;
나중에 뻑나는건 나중일이 되는 경우가 많으니 일단은 지금 할 줄 아는 것이 중요하고.. DB의 중요성은 어디에서 누구에게 물어봐도 다 인정 할 껍니다.. 물론 DBA가 있다면 DBA를 더욱 괴롭히세요 🙂

4. 소프트웨어 개발을 포기 하세요
이유 – 그게 어찌보면 가장 나은 빠른 방법일 가능성도 있습니다
대안으로 공부를 해야 할 것은 네트워크, 보안 그리고 하드웨어 입니다

네트워크라는 것이 사실 매우 간단한데 프로그램의 어셈블리 같은 느낌이 강해서 접근을 하는 방법이 어렵지 개념이 잡혀 있으면 슬슬 따라오는 경우가 많습니다.. 다 따라오지 않는 것이 문제가 되기는 하지요 -ㅂ-;; 단점은 네트워크라는 것이 언제 장애가 발생을 할 지 모르기 때문에 24/7 대기를 해야하는 경우가 많이 생긴다라는 것..

하드웨어의 경우는 아무리 인터넷이 발전을 하고 컴퓨터가 발전을 해도 결국 어디에선가 서버라는 녀석이 보내주는 데이터에 의존을 해야하고 그 서버를 담당하는 자원이 생각보다는 모자라기에 서버 쪽의 하드웨어 (단순 서버 및 스토리지 포함) 쪽에 대한 이해도가 높다면 매우 큰 도움이 될 것입니다

그리고.. 가장 중요한…
뭔가 똥꼬가 찌릿찌릿하고 머리 속에서 떠나지 않는다라면 잡으세요..

다만 똥인지 된장인지 가려가면서 먹어야합니다 -_-;;
이게 참 어려운데.. 먹어보기 전에는 모르는 경우가 많기에.. 일단 간을 보고 제대로 씹기전에 삼킬지 뱉을지를 잘 결정해야 합니다..

돈 몇 푼 따라 갔다가 그거에 목 매달고 살게 될 수도 있으니.. 하고 싶은거 정해서 그거 잘 밀고 나가면 됩니다 🙂

Oracle 이 SUN을 샀습니다

허허허….

라는 말 뿐-_-
http://www.sun.com 에 가면 현재시간 기준으로 ORACLE TO BUY SUN 이라는 문구를 볼 수 있으며 공식으로 발표도 되었으니 이미 게임은 끝난 듯..
IBM이 입질만 하다가 이것저것 겹치는게 워낙 많아서 나중에 태클 들어올게 걱정되어서 그냥 포기한거 같긴한데 설마 오라클에게 넘어갈 것이라고는 생각도 안했는데..
아무리 자바를 만들었다지만.. 자바가 파는 건가요 -ㅂ-; 그냥 쓰는거지;;
SUN은 누가 뭐라고 해도 서버랑 스토리지 팔던 HW회사인데.. SW개발하는 오라클에게 넘어가버렸다니…
그나저나;;
SUN이 인수해서 좀 괜찮아지려나 했던 MySql은 어떠한 운명에 처해질 것인지 -ㅂ-;;
Oracle이 InnoDB 인수해서 골치좀 썩었었는데 InnoDB를 다시 전면으로 밀어 붙일 수 있을 것인지 ㅎㅎ
그렇지 않아도 솔라리스+오라클의 조합은 DB쪽에서의 나름 표준이라 그 판을 깨기가 힘들었는데..
이건 뭐 이젠 윈도+MSSQL 보다 더 무섭잖아 -_-;; 가격만 아니면 ㅋ
무서워요 무서워~
래리 횽아 역시 무서워 -ㅂ-

Opensolaris 오픈솔라리스 설치

Unix 계 OS 의 3인방하면 HP-UX, AIX 그리고 Solaris 이렇게 생각이 되는데 HP-UX야 이름에서 알 수 있듯 HP머신 아니면 돌질 않고–;; AIX는 IBM에서만 돌고 결국 지금 범용으로 쓸 수 있는건 Solaris 말고는 없다라고 결론 🙂

OS 전체를 밀고 다시 까는건 지금 상황에서는 할 수 없으니 가상머신의 도움을 받아서 설치를 시작

1. OS 이미지 다운로드
http://www.opensolaris.com
http://www.opensolaris.org

현재의 최신 버전은 2008년 11월 버전인 08.11
해당 ISO파일을 굽고 부팅하면 사실 설치 하지 않아도 맛은 볼 수 있는 상태가 됨 🙂
물론 LiveCD방식이기에 이것저것 하고 놀기에는 느리긴 하지만.. 그냥 재미삼아.. 그리고 설치를 위해서는 어쩔 수 없이 🙂 일단은 LiveCD로 부팅을 함

2. 설치
우분투를 설치해본 경험이 있다라면 아주 쉽게 적응 할 수 있을 듯..
설치 패키지 부터 한글도 지원을 하니 큰 문제 없이 설치가 완료될 것이라 생각~

3. 첫만남


우분투를 그대로 배껴놓은 듯한 메뉴를 가진 파란 바탕화면을 볼 수 있음 🙂
Firefox도 있고 하니 인터넷이 된다면 그 때부터는 인터넷으로 모든 패키지나 소프트웨어등을 받을 수도 있고 놀 수도 있다 ㅎ



4. 뭔가는 해봐야지–;;

Unix/Linux 계열의 얼굴마담 소프트웨어인 Apache+MySql+PHP를 설치해보기로 결정

# su (관리자 패스워드 입력)
# pkg install amp

기다리면 끝;;

아 쉽다 -ㅅ-;;

데비안 만든 사람이 Sun으로 옮겨 간 후에 참가해서 그런지 데비안 기반의 리눅스가 가지고 있는 설치의 편리함이 솔라리스에도 녹아들어가있음 🙂

5. 모듈들 실행
/usr/apache2/2.2/bin/apachectl start
/usr/mysql/5.0/bin/mysql_install_db –user=mysql
/usr/mysql/5.0/bin/mysqld_safe &

그리고 나서 Firefox 열고 http://localhost 하면

아마도 It works! 화면이 반겨줄듯~ 🙂
mysql 은 경로 찾아 들어가서 접속하면 바로 될듯 하고
php는 phpinfo() 해보니 잘 출력되더라는~ 이렇게까지만 되어도 일단은 만족~ ㅎ

이제 솔라리스로 서버도 깔 수 있게 되었으니 mysql 기본 사용법은 검색하면 아주 많이 나오니 그거 따라하면 되고 백업도 되고 아파치도 돌고 하니 프로덕션으로 써도 큰 문제는 없는 환경까지는 만들었음 🙂

물론-_-;; 이렇게 환경 만들면 난리나지만서도;;;;;
리눅스 말고 솔라리스! 에서 돌아가잖아~ 🙂

ps. 사실 솔라리스 사용자들이 극찬을 마지않는 ZFS 파일 시스템이 써보고 싶어서 솔라리스에 관심이 있었는데 이제서야 내 실력으로 설치 정도는 할 수 있는 패키지가 나오기 시작하는듯.. 기존에는 깔기만 했지 이거 뭐 제대로 돌려본 적이 없었으니 ㅠㅠ

MySQL 에서 LOAD DATA INFILE 과정을 web에서 처리 할 때 필요한 권한

php등에서 리눅스 서버로 업로드 하고 나면 보통 /tmp 디렉토리에 올라가는데 해당 파일에서 MySQL로 LOAD DATA INFILE을 시도 할 경우 에러가 나게 될 가능성이 있으니 혹시라도.. 업로드 파일을 바로 사용할 경우에는 DB 사용자의 권한을 체크!
use mysql;
select * from user;
하면 유저들 정보가 주욱 다 나오는데 해당 권한들 중에서 import시 사용되는 유저의 file_priv 의 권한을 Y로 바꾸고 flush를 합시다 🙂

MSSQL 에서 MySql 데이터를 조회해야할 일이 있을때 – OPENQUERY 사용예시..

오늘 간만에 한번 실무에서 써봤으니 까먹지 않게 정리 한판..

MSSQL이 깔려있는 서버 컴퓨터에 MySql connecter/ODBC 를 깐다.. 최근 버전은 5.1임..
(많은 자료들이 아마도 3.51 로 되어있는 경우가 많을듯)
MySql ODBC 드라이버를 깐 후 Linked Server를 ODBC를 이용하여 잡아줌
그후 쿼리 날리기
select * from openquery(MYSQL, ‘select * from TABLE limit 100’)
INSERT into openquery(MYSQL,’select fd1, fd2, fd3 from TABLE’)
select va1, va2, va3
from source.table
or 
INSERT into openquery(MYSQL,’select fd1, fd2, fd3 from TABLE’)
values (va1, va2, va3)
내 경우에는 Linked Server의 이름을 MYSQL 로 잡았기에 위처럼 쿼리를 날리면 된다라는..

MySQL – 텍스트, CSV 등의 Flatfile을 import 할 때 쓰는 명령어

작업 하다보면 txt파일 또는 csv등의 파일들을 DB에 넣어야 할 경우가 많은데 phpmyadmin 을 쓰지 않는 이상 쿼리로 모든 것을 해야하니 이번에 작업 하나 한 김에 또 잊기전에-_- 기록 남겨놓기 🙂

쿼리를 이렇게 날립시다
mysql > LOAD DATA INFILE ‘/경로/파일이름.txt’ INTO TABLE ‘테이블’ FIELDS TERMINATED BY ‘\t’ LINES TERMINATED BY ‘\n’ (필드1, 필드2);

이렇게 하면 /경로/파일이름.txt가 ‘테이블’ 이라는 이름의 테이블로 입력 되는데 필드1, 필드2 라는 이름의 필드들에 해당 값이 import 됨

에러가 나와도 진행을 하기 위해서 필드 뒤에 IGNORE 1 LINES  명령어를 넣어주면 됨

작업 좀 편하게 합시다~ 🙂
mysql 로그인 도 귀찮은 경우에는

$> mysql -uroot -p -e “LOAD DATA INFILE ‘/경로/파일이름.txt’ INTO TABLE ‘테이블’ FIELDS TERMINATED BY ‘\t’ LINES TERMINATED BY ‘\n’ (필드1, 필드2);”

이렇게 처리를 해주면 로그인을 한 화면에서 다시 붙여넣기를 하지 않아도 자알 들어감..

Windows 에서 Apache+MySQL+PHP와 함께 WordPress를 사용할 때의 설정

windows기반에서 apache mysql php의 연동은 정말 넘치고 넘쳐있으니;; 죄송하지만 검색 한번 해보시면 나올듯 하고

글을 적는 이유인 windows 기반에서 wordpress를 연습 or 서비스 (설마;;) 할 때의 도움이 되는 설정 내용

 

apache+mysql+php 설치후 설정할 것들..

 

httpd.conf에 추가될 내용

1. LoadModule rewrite_module modules/mod_rewrite.so 에 있는 주석 제거

2. php 설정 – 이건 아마도 이미 apache와 php의 연동에서 처리가 되었을 부분
LoadModule php5_module “D:/PDS/php-5.2.5-Win32/php5apache2_2.dll”
AddType application/x-httpd-php .php
PHPIniDir “D:/PDS/php-5.2.5-Win32/”

3. 경로와 권한설정
<Directory “D:/document/wordpress”>
Options Indexes FollowSymLinks
AllowOverride All

Order allow,deny
Allow from all
</Directory>

예전에 적어놓았던 403에 대한 에러 역시 수정됨.. 중요한것은 mod_rewrite.so 이 부분과 AllowOverride 설정을 All 로 변경해주는 것..

 

위의 내용까지 처리가 되었다라면 permanent link부분까지 처리가 다 될듯
이거 제대로 처리 안되면 http://localhost/?p=번호 이런 식으로만 처리가 되고 (물론 보고 즐기는데는 상관없지만 이왕하는거 ㅋ) 나름 fancy한 링크인 permalinks가 먹질 않고 404 에러를 토해낼테니–;; 그게 보기 싫으면 위의 설정을 해주면 깔끔~

MySQL 변경해도 변경이 안될 경우 -_-;;; flush privileges

제목이 이상하지만 MySQL을 쓰다보면 사용자를 추가 했는데 로그인이 안된다거나 패스워드를 변경했는데 변경되지 않은 것으로 나올 때가 있는데 이 때 사용하면 대부분의 경우 해소가 되는 명령어가

flush privileges;

root로 로그인 한 다음에 저거 한번 해주면 모든 변경 사항이 싸악 적용되면서 원치 않던 에러가 많이 해결되리라 생각됨 🙂

많이 착한 명령어중 하나임~

MySQL for Windows error 1067 이 생길때

쓰고있는 laptop에서 apache+php+mysql 이렇게 세가지를 다 돌리려다 보니 각종 에로사항이 마블링-ㅂ-처럼 피어올라 정리-_-;

먼저 조건이라면
1. 아래에 해당 하는 경우는 압축을 풀어 설치하는 설치본에 해당하는 경우임
2. 버전은 MySQL 5.0.51b win32 를 기준으로 함
3. Windows XP with Service Pack 3 이 기본 OS임 (별 상관은 없는-_-)

Administrative tool에 있는 Service항목에서 mysql 서비스가 실행이 안되어있는 것을 확인해서 시작을 시키려고 하니 에러가 발생

Could not start the MySQL service on Local Computer.

Error 1067: The program terminated unexpectedly.

흠.. 도와줘요 구글~

forums.mysql.com 에 링크가 걸림.. 영어 압박 -ㅅ-;;

일단 문제는 경로설정 (linux에서는 이런거 없었던거 같은데 ㅠㅠ 컴파일이 귀찮긴했어도-_-)

윈도설치경로가 C:\라면
c:\windows\my.ini 가 있다면 수정 없다면 생성을 먼저 한 후 아래의 내용을 추가해준다

[mysqld] 
basedir=D:/MySQL
datadir=D:/MySQL/data

여기서 경로는 자신이 압축을 푼 그 위치를 의미함 내 경우에는 D:\에 mysql이라는 디렉토리에 압축을 풀었기에 저런 설정을 추가해줬음..

그 뒤에 다시 Service가서 시작 해주면 아주 깔끔하게 🙂 시작이 되는 것을 확인 할 수 있습니다~