2012년 5월 19일 토요일

mysql 소스로 설치하는 방법.

지금도 되려나? 요샌 패키지 매니저가 워낙에 잘 되어 있어서 굳이 소스 설치를 안해도 된다.

그래도 의존성 문제 때문에 내가 관리하는 서버에서는 소스 설치와 패스 지정을 해줘야 한다능.


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

- 설치를 보다 쉽게 하기 위해 현재 디렉토리에서 쉘 스크립트를 생성해줍니다.
vi
mysql.sh라는 파일명으로 만들어줍니다.
[ root@ilinuxbay mysql-4.0.18 ]# vi mysql.sh
- 다음과 같이 입력해줍니다.
#!/bin/bash
#
보안을 위해 mysql 사용자 추가
useradd -u 27 -d /usr/local/mysql/var -M -r -s /sbin/nologin mysql
# -M :
실제 디렉토리를 생성하지 않음
# -r : /etc/login.deps
파일을 참조하여 시스템 계정을 생성함

# mysql
옵션 설정 가능한 한줄로 쓴다 혹. 옵션이 적용 안될수 있음.
#--prefix=/usr/local/mysql , --with-mysqld-user=mysql , --without-debug
를 포함하여 configure할 경우 바이너리
#
RPM설치보다 33~48%정도의 속도향상을 가져올 수 있습니다.
# 만약 mysql 4.1.1-alpha를 설치한다면 --with-charset=euc_kr --with-character-set=euckr으로 수정
#
하고 --with-collation=euckr_korean_ci을 뒤에 추가해주세요.
#
그리고 가급적이면 아래의 명령어들을 한줄로 해주세요.

./configure --prefix=/usr/local/mysql --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static --with-charset=euc_kr --without-debug \
--enable-assembler --with-mysqld-user=mysql

#
컴파일을 하고 설치를 한다.
make && make install

# MySQL
권한 데이터 베이스를 생성한다(MySQL시스템 데이터베이스와 test데이터베이스
#
생성).

/usr/local/mysql/bin/mysql_install_db

# mysql
그룹과 디렉토리 퍼미션을 설정을 한다. (/usr/local/mysql 디렉토리의 소유권을 root
#
로 설정하고, mysql data 디렉토리의 소유권을 mysql사용자로 변경한다. 보안을 위해서 최근버전에 추가된 내용)

chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql

#
라이브러들을 등록해준다.
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf && ldconfig

# mysqld
의 경로를 지정해준다.
echo PATH=$PATH:/usr/local/mysql/bin >> /etc/profile && source /etc/profile

# mysql
"service mysqld start[restart, stop]"처럼 자동으로 시작, 재시작, 중지시키기 위해
#/usr/local/mysql/share/mysql/mysql.server
파일을 /etc/init.d/mysqld 로 복사한다.

cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
#쉘 스크립트 끝
참고 : nice
[root@ilinuxbay mysql-4.0.18]# man nice
nice - 스케쥴링 우선권을 변경하여 프로그램을 수행한다.
nice
에 의해 조정될 수 있는 범위는 -20 (가장 높은 우선권)에서 19 (가장 낮은 우선권)까지이다.
- 작성한 쉘스크립트를 실행 시킨다.
[root@ilinuxbay mysql-4.0.18]# nice --20 bash mysql.sh
- 쉘이 잘 작동 했는지 확인
#-1. 계정
[root@ilinuxbay mysql-4.0.18]# cat /etc/passwd | grep mysql mysql:x:27:27::/usr/local/mysql/var:/sbin/nologin
#-2. 데이터 베이스 [root@ilinuxbay mysql-4.0.18]# ls /usr/local/mysql/var/ mysql test
#-3. 라이브러리
[root@ilinuxbay mysql-4.0.18]# cat /etc/ld.so.conf | grep mysql
/usr/local/mysql/lib/mysql
#-4. 디렉토리 퍼미션
[root@ilinuxbay mysql-4.0.18]# ls -la /usr/local/mysql/
total 48
drwxr-xr-x 12 root mysql 4096 Jul 23 15:14 .
drwxr-xr-x 16 root root 4096 Jul 23 15:14 ..
drwxr-xr-x 2 root mysql 4096 Jul 23 15:14 bin
drwxr-xr-x 3 root mysql 4096 Jul 23 15:14 include
drwxr-xr-x 2 root mysql 4096 Jul 23 15:14 info
drwxr-xr-x 3 root mysql 4096 Jul 23 15:14 lib
drwxr-xr-x 2 root mysql 4096 Jul 23 15:14 libexec
drwxr-xr-x 3 root mysql 4096 Jul 23 15:14 man
drwxr-xr-x 6 root mysql 4096 Jul 23 15:14 mysql-test
drwxr-xr-x 3 root mysql 4096 Jul 23 15:14 share
drwxr-xr-x 7 root mysql 4096 Jul 23 15:14 sql-bench
drwx------ 4 mysql mysql 4096 Jul 23 15:14 var
- mysql 자동화 스크립트 및 부팅시 자동 시작 설정
[root@ilinuxbay support-files]# cd /etc/rc.d/init.d/
- /etc/rc.d/init.d/mysqld 에 내용 추가
[root@ilinuxbay init.d]# vi +145 mysqld
==>$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --language=korean &
- 설치 후에 시스템에 맞추어서 시스템 최적화 옵션 파일(MySQL 서버에서 환경 설정을 위한 파일) /etc/ 로 복사한다.
- 다음은 128메모리를 사용하는 경우이다.
[root@ilinuxbay init.d]# cd /usr/local/src/source/mysql-4.0.13/support-files
[root@ilinuxbay support-files]# cp my-medium.cnf /etc/my.cnf
# 64M 이하이면 : my-small.cnf
# 128 M~256 M
이면
: my-medium.cnf
# 512 M~1G
이면
: my-large.cnf
# 1G
이상이면 : my-huge.cnf
- 데이터 베이스를 시작한다.
[root@ilinuxbay init.d]# service mysqld start
[root@ilinuxbay init.d]# Starting mysqld daemon with databases from /usr/
local/mysql/var
- 프로세스를 확인해서 제대로 프로세스가 뜨는지 확인 한다.[root@ilinuxbay init.d]# pstree | grep mysql |-mysqld_safe---mysqld
---mysqld---8*[mysqld]
# ntsysv mysqld를 추가해준다.
[root@ilinuxbay init.d]# chkconfig --add mysqld
- mysqld 서비스 데몬 확인
[root@ilinuxbay init.d]# ntsysv
- mysql 패스워드 설정 [root@ilinuxbay /bin]# cd /usr/local/mysql/bin
[root@ilinuxbay /bin]# ./mysqladmin -u root password '패스워드
- mysql.sock파일 위치
데몬접속시에 사용되는 mysql.sock파일은 configure시에 설정을 하지 않았을 경우는 /tmp/mysql.sock 파일이 생성됩니다.
출처 : ilinuxbay.com(대전 리눅스전문학원)에서 제가 작성한 강좌의 일부분입니다.
^^V 꼭 성공하세요~~ <= 어디서 가져왔는지 기억이 안남.. 지송..

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...