2008년 11월 20일 목요일

MySQL의 도입

MySQL인스톨방법에 대해서 정리해 보겠다. 

MySQL인스톨은 정말 쉽다.  자세한 부분은 매뉴얼이나 다른 서적을 참고하기 바란다. 

인스톨
 MySQL인스톨방법을 Unix계열과 Windows로 나눠서 설명해보겠다. 

 1.Unix계열
  각 플랫폼용 바이너리가 .tar.gz형태로 배포되어 있으므로 그것을 사용하는 것이 간단하다.
 .tar.gz를 /usr/local/아래에 전개해 /usr/local/mysql로 rename하던지 symbolic link을 만든다.

   >MySQL인스톨 예
    root@shell# cd /usr/local
    root@shell# tar zxvf mysql-5.1.12-beta -linux-i686-glibc23.tar.gz
    root@shell# ln -s mysql-5.1.12-beta-linux-i686-glibc23 mysql 

 만약에 한번도 MySQL서버를 사용하지 않았던 환경이라면 권한 데이터베이스를 만들필요가 있다.
   
   >권한 데이터베이스작성예
    root@shell# groupadd mysql
    root@shell# useradd -g mysql -d /usr/local/mysql/data -s /bin/false mysql
    root@shell# cd /usr/local/mysql
    root@shell# ./scripts/mysql_install_db --verbose --user=mysql --datadir=/usr/local/mysql/data 

이 예에서는 MySQL서버를 mysql 유저로 동작시키려고 하고 있으므로 useradd로 OS의 사용자를 추가한다.  그 후에는 mysql_install_db를 실행한다. 

 mysql_install_db의 --datadir은 데이터베이스를 보관하는 디렉토리지정, --user는 데이터베이스 디렉토리의 소유자를 지정한다.  --verbose를 붙이면 실제로 테이블이 생성되었는지 아닌지 알 수 있다.  mysql_install_db는 옵션 설정 파일인 my.cnf내부의 [mysqld],[mysql_install_db]을 참조하므로 주의해야한다.  참조하지 않게 하려면 mysql_install_db의 최초인수에 --no-defaults옵션을 지정하면 된다. 

덧붙여 말하면 , 각 디스트리뷰터가 작성하고 있는 MySQL패키지도입은 그다지 추천하지 않는다. 컴파일할 때의 옵션도 가지가지이고 버전관리도 엉성한게 많고 경우에 따라서는 파일배치가 MySQL표준하고는 동떨어진 것도 있으므로 혼란의 원인이 되기 때문이다. 

 > mysql_install_db옵션
    --no-defaults   my.cnf를 읽지 않는다. 반드시 최초의 인수로 지정되어야 한다. 
    --defaults-file= 지정한 my.cnf를 참조한다. 반드시 최초의 인수로 지정되어야 한다. 
    --force  에러가 있어도 처리를 진행한다. 
    --basedir=  base dir를 지정
    --datadir=  data dir를 지정 
    --skip-name-resolve  호스트명이 아닌 IP어드레스로 권한테이블에 기록한다. 
   --verbose 자세한 출력