출처 : http://levin01.tistory.com/1122
서버 셋팅을 하다 보면 참 편리한게 APM 패키지이다. 페도라같은 경우는 rpm으로도 설치가 가능하며, 바이너리를 받아 설치하여도 아주 편리하게 이용할 수 있다. 하지만 나만의 Mysql을 위해서는 컴파일을 해서 설치하는 것도 좋은 방법인듯 하다. 설정은 페도라4에서 시행했다. 프로파일 및 자동시작 외에는 솔라리스에서도 바로 적용이 가능할 것이다.
일단은.. 아래 사이트에서 MySQL 5.0을 다운받는당...
소스코드를 다운 받자.. 그러면 일단 압축을 풀고... 다음과 같이 컨피규어를 날려준다.
./configure --prefix=/usr/local/mysql --with-charset=euckr --enable-large-files --localstatedir=/u01/data/mysql --with-readline --with-extra-charsets=all --with-innodb --disable-shared --with-mysqld-user=mysql --with-unix-socket-path=/var/lib/mysql/mysql.sock --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --without-debug --without-docs
--prefix=/usr/local/mysql
기본적으로 mysql 설치할 폴더를 정해준다. 실행파일이나, 설정파일을 따로 나눠 사용할 경우는 컨피규어 옵션에서 따로 다 설정해줘야 한다. 그런 경우는 모 ... 찾아보자 .. 각 폴더에 모두 나누어 놓는 것도 사실 귀찮다.
--with-charset=euckr
여기서 기본적으로 코드는 euc-kr을 쓴다. utf-8을 쓸 경우는.. 모 charset만 고쳐주면 될 것이다.
--localstatedir=/u01/data/mysql
mysql 데이터 파일 저장은 /u01/data/mysql 폴더 이다. 이건 없으면 mysql폴더 아래로 들어간다.
--with-innodb
innoDB를 사용하려면 이 옵션을 꼭 넣어 줘야 한다.
--with-mysqld-user=mysql
mysql실행 유저를 결정한다.
--with-unix-socket-path=/var/lib/mysql/mysql.sock
요건 소켓파일의 위치를 알려준다. data쪽에 넣어 두지 말고 var폴더에 잘 넣어 주도록 하자. tcp/ip대신 유닉스 소켓을 사용하여 최적의 성능을 끌어 낸다.
--with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
컴파일 옵션으로 'CXX=gcc'를 사용할 때 오류를 피하기 위해 공유 라이브러리를 사용하지 않음
실행 성능을 높일 수 있다.
--without-debug
질의시 디버깅 코드를 사용하지 않기 때문에 빠른 속도를 얻어낼 수 있다.
configure을 실행한 후.. 모.. 컴파일을 해야 겠지.. 컴파일을 하자.
그다음에는.. make
make install을 해주자..(요놈은 root권한으로 해야 한다)
그럼 mysql은 설치가 다 되었다.
그 다음 할일은 무엇인가? 바로 mysql 사용자를 만드는 것이다.
이유는 mysql동작을 root가 아닌 mysql유저가 하도록 하는 것이다. 보안상의 문제~
groupadd dba
useradd -M -o -r -d /usr/local/mysql -s /sbin/nologin -c "Mysql Server" -u 27 -g dba mysql >/dev/null 2>&1 || :
그룹명은 mysql로 하는 것이 일반적이다. 근데 난 걍 dba로 할란다.
그 다음은 설치된 폴더에 대해 권한을 부여하자.
chown -R root:dba /usr/local/mysql
chown -R mysql:dba -R /var/lib/mysql/
그 다음에 mysql data가 저장될 폴더를 생성한다.
mkdir /u01/data/mysql
다음은 초기 데이터를 생성해야 한다.
/usr/local/mysql/bin/mysql_install_db
그 이후 퍼미션도 조정해 준다.
chown -R mysql:dba /u01/data/mysql
mysql을 실행한다.
/usr/local/mysql/bin/mysqld_safe &
다음은 root권한을 설정해 준다.
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
그 다음은.. 라이브러리에 등록한다. 물론 루트 권한으로..
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf && ldconfig
mysqld 자동 시작을 위해 다음과 같이 스크립트를 복사해 준다.
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
다음은 자동 시작 등록을 해주자.
chkconfig --add mysqld
chkconfig --level 35 mysqld on (런레벨 35일때 자동 실행 된다)
마지막으로 익명접근권한을 삭제하자.. mysql 콘솔에 그냥 접근을 못하게 해야 한다.
root 권한으로 접근하여.. mysql 데이터베이스를 선택한 후 다음 쿼리문을 실행한다.
delete from user where password = "";
그 후에 mysql을 재시작 한다 일단은 콘솔을 종료하고... 쉘에서..
mysqladmin -u root -p reload
다음은 설치파일의 support-files폴더에 있는 my.cnf파일을 복사한다.
cp my-large.cnf /etc/my.cnf // 메모리에 따라서 파일이 달라진다.
'DATABASE' 카테고리의 다른 글
[mySQL] RHEL5에서 mysql설치 (0) | 2011.10.16 |
---|---|
[ORACLE] 오라클 시간계산 (0) | 2011.10.16 |
[oracle] 10g에서 생긴 쓰레기통 삭제 방법 (0) | 2011.10.16 |
[oracle] 테이블정의서 만들기 쿼리 (0) | 2011.10.16 |
[ORACLE]오라클의 sys, system의 비밀번호를 잊어버렸거나 초기화할 때 (0) | 2011.10.16 |