강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

리눅스서버 어플리케이션 리뷰 MySQL, DRAC편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스서버 어플리케이션 리뷰 MySQL, DRAC편


작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀


■ MySQL 데이터베이스

top



#### 3.23.53버전으로 모두 셋팅한다.

주의1 : 위의 버전에서는 반드시 mysql 계정이 있어야함. 즉, mysql이라는 사용자의 권한으로 실행이됨, 보안상의 이유로 실행자체가 mysql이 하게됨.(useradd mysql만 하면됨, 즉, 홈디렉토리를/usr/local/mysql/로 할 필요가 없음)

주의2 : chown -R mysql:mysql /usr/local/mysql/data 을 해줘야함.

즉 data디렉토리이하에는 mysql계정으로 실행되므로 데이터가 저장되는 위치, 즉 예를들어 data디렉토리에는 mysql이라는 계정의 사용자권한으로 저장이 되므로 mysql사용자에게 반드시 쓰기 권한이 있어야하기 때문임.


mysql 성능향상을 위한 컴파일튜닝

Mysql 튜닝1. ==> Memory상황에 맞는 설치옵션사용

Mysql설치시에 /etc/my.cnf라는 파일이 있다면 그 파일을 사용내의 컴파일옵션을 사용하여 컴파일을 하게됨.

따라서 서버사양과환경(특히 메모리)에 맞는 my.cnf파일을 만들어서 /etc/my.cnf로 복사한 후에 컴파일하면됨.

다행히도 support-files/디렉토리에 가면 메모리에 맞는 템플릿파일들이 몇개 존재함.

RAM이 1G~이상 이라면(support-files디렉토리에서) : cp my-huge.cnf /etc/my.cnf

RAM이 512M~1GB 라면(support-files디렉토리에서) : cp my-large.cnf /etc/my.cnf

RAM이 64M~128M라면(support-files디렉토리에서) : cp my-medium.cnf /etc/my.cnf

RAM이 64M 이하라면(support-files디렉토리에서) : cp my-small.cnf /etc/my.cnf

로 복사한 후에 설치하도록 한다.

Mysql 튜닝2. ==> 컴파일러 gcc대신 pgcc사용

그리고 컴파일시에gcc보다는 pgcc를 사용하고 -O6옵션을 사용하게 되면 속도는 약 11%정도 빨지게됨. (Makefile내의 gcc를 pgcc로 대체하여 컴파일할 것.) 리눅스의 배포판에는 기본적으로 pgcc라는 컴파일러는 존재하지않음, 하지만 mysql압축을 풀면 mit-pthreads/pgcc에 존재함.이를 이용하여 컴파일할것...

pgcc로 컴파일방법

==> CC="pgcc" CFLAGS="-O2 -mpentiumpro" 를 먼저 실행

==> ./configure를 위의 옵션대로 실행.....

Mysql 튜닝3. ==> 컴파일에서의 옵션사용을 통한 튜닝

방법1.
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euc_kr --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static

방법2.
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euc_kr --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-innodb --enable-ftp


설명

--prefix=/usr/local/mysql : Mysql의 설치위치

--localstatedir=/usr/local/mysql/data : Mysql의 데이터저장 위치

--with-charset=euc_kr : 한글지원을 위한 옵션

--with-mysqld-ldflags=-all-static 공유라이브러리사용안함.

--with-client-ldflags=-all-static 공유라이브러리사용안함.

위의 -all-static 옵션은 공유라이브러리를 사용하지 못하도록 합니다. 공유라이브러리를 사용하게 되면 여러프로그램에서 하나의 라이브러리를 사용하여 메모리를 절약하는 장점은 있지만, 공유하는 만큼 속도는 느려지게 됨. -all-static옵션은 이런 공유라이브러리를 사용하지 못하도록 하여 속도를 증가시킴(장점, 속도증가 약 13%정도), 하지만 공유라이브러리를 사용하는것에 비해 메모리를 더 많이 차지하게됨(단점).

일반적인 Mysql 설치방법

설치위치 : /usr/local/mysql/

tar xvfpz mysql-3.22.24.tar.gz

cd mysql-3.22.24

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

make

make install

cd /usr/local/mysql/bin

./mysql_install_db

설치후 셋팅할 사항1 ==> 초기설치후Mysql root패스워드 변경

./mysqladmin -u root password 12345

사용중 Mysql root 패스워드 변경(3가지방법)

./mysqladmin -u root -p password 12345

mysql>set password for root=password('12345')

mysql>update user set password=password('12345') where user = 'root';



설치시 configure 옵션 참고사항

--with-innodb : trasction처리위한 옵션(속도는 느려지며, 로그파일의 크기가 쉽게커진다. )


## 설치후에 다음과 같은 에러가 발생할 경우의 원인과 조치방법 ##

에러로그 파일에

[root@su39 bin]# cat ../data/su39.nicekorea.co.kr.err
030220 08:59:37 mysqld started
Fatal error: Can't change to run as user 'mysql' ; Please check that the user exists!
030220 8:59:37 Aborting

030220 8:59:37 /usr/local/mysql/libexec/mysqld: Shutdown Complete

030220 08:59:37 mysqld ended

030220 08:59:54 mysqld started
030220 8:59:54 /usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/data/su39.nicekorea.co.kr.pid' (Errcode: 13)
030220 8:59:54 /usr/local/mysql/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
030220 8:59:54 /usr/local/mysql/libexec/mysqld: Error on delete of '/usr/local/mysql/data/su39.nicekorea.co.kr.pid' (Errcode: 13)
030220 08:59:54 mysqld ended

030220 09:01:14 mysqld started
030220 9:01:14 /usr/local/mysql/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
030220 09:01:14 mysqld ended

[root@su39 bin]#

위의 에러는

1번 : useradd mysql

2번 : chown -R mysql:mysql data 로서 해결할 수 있다.

 

■ SMTP인증을 위한 DRAC

top


######### SENDMAIL 사용자 인증을 위한 DRAC 설치 ####

1. portmap 실행이 되어 있어야한다.

실행 : /etc/rc.d/init.d/portmap start

확인 : ps -ef | grep portmap

2. /usr/local/drac디렉토리에 drac_1.12.tar.gz 압축해제한다.

3. /usr/local/drac에 drac컴파일

make

make install

make install-man

확인 : /usr/local/sbin/rpc.dracd 설치확인

확인 : /etc/rc.d/init.d/drac 확인

drac 실행 : /etc/rc.d/init.d start

drac 실행확인 : ps -ef | grep drac

** DRAC설치시에는 Makefile을 직접 서버상황에 맞게 설치해야한다.

특히 Makefile수정시 아래주의

INSTALL = install

EBIN = /usr/local/sbin

MAN = /usr/local/man/man

DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C

CC = gcc

RANLIB = :

CFLAGS = $(DEFS) -g

LDLIBS = -ldb

TSTLIBS = -L. -ldrac

RPCGENFLAGS = -C -I

MANLIB = 3

MANADM = 8

4. qpopper 설치 (옵션주의)

./configure --enable-specialauth --enable-bulletins=/var/spool/bulls --enable-servermode --enable-shy --enable-drac=/usr/local/drac

make

cp popper/popper /usr/local/lib/

vi /etc/services

cd /etc/xinetd.d

5. sendmail.cf 파일 수정

##################

# local info #

##################

의 적당한 위치 아래에 아래행 삽입

#SENDMAIL DRAC 설치 : 2004 01 29

Kdrac btree /etc/mail/drac

#####################################################################

### check_rcpt -- check SMTP `RCPT TO:' command argument

######################################################################

SLocal_check_rcpt

위치 아래에 아래 복사 삽입할 것 (주의 : TAB)

# SENDMAIL DRAC 설치 : 2004 01 29

R$* $: $&{client_addr}

R$+ $: $(drac $1 $: ? $)

R? $@ ?

R$+ $@ $#OK


 
copyright.gif

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  136 명