$ make install도 끝났다.
/usr/local/mysql3에 설치가 되었다. 두둥!
이제 installing from source tree문서를 벗어나서 보통 소스에서 설치하듯이
./configure
make
make install
단계를 지난 이후의 일을 처리해주면 된다.
http://dev.mysql.com/doc/refman/4.1/en/quick-install.html
조금 달라져야 하는 부분이, mysql3뿐 아니라, mysql5를 동시에 돌리진 않지만 적당한 단계에서는 둘 중 하나를 임의로 켜는 단계가 필요할 것이므로 my.cnf를 분리해서 써야 한다. 그걸 어떻게 할까나.
/usr/local/mysql3/etc/my.cnf를 만들었다. 물론 etc 디렉토리가 없으니 만들어야 함.
$ cp support-files/my-medium.cnf /usr/local/mysql3/etc/my.cnfmy.cnf를 수정해서 [mysqld]섹션의 datadir= 옵션으로 mysql5와는 구분되는 다른 디렉토리를 database directory로 써야 함.
/usr/local/mysql (mysql5이었던 것)을 mysql5로 mv하고,
소프트링크로 /usr/local/mysql을 만들었다. 이 링크는 mysql5나 3를 가리키게 될 것.
/etc/my.cnf는 /usr/local/mysql/etc/my.cnf를 가리키게 했다.
make install을 root로서 수행했기 때문에 mysql에게 소유권을 넘겨야 함...
datadir로 지정한 곳은 mysql에게 반드시 넘겨야 한다.
보통 설치라면 이제 db를 initialize할 시간... 이지만, 전 서버에서 옮겨온 db 파일이 있으면 필요 없는 단계.
# bash bin/safe_mysqld --user=mysql &이러면 잘 실행이... 안 될 수 있다 ㄱ-;; 에러로그나 에러메시지를 잘 보고 하나씩 해결해가야 한다.
에러로그가 안 남아서, 설정을 건드려서 남도록 바꿔야 할 것이다 -0-
[safe_mysqld]위 섹션을 추가하면 로그가 남는다.
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
버전 따라 다르지만, 필자의 경우에는 별 다른 이유 없이 자꾸 mysql이 시작되지 않고 죽어서
로그를 보니까 nohup은 nice의 옵션이 아니라고 어쩌구저쩌구 써있다.
safe_mysqld 스크립트에 버그가 있던 것이다 ㅠㅠ
해결: safe_mysqld 스크립트의 162행 근처를보면
NOHUP_NICENESS="nohup"이런게 있는데 통째로 코멘트 처리해버린다. 리눅스에서의 버그를 고친답시고 넣은 부분인데 솔라리스에선 필요 없다.
if test -w /
then
NOHUP_NICENESS=`nohup nice 2>&1`
if test $? -eq 0 && test x"$NOHUP_NICENESS" != x0 && nice --1 echo foo > /dev/null 2>&1
then
NOHUP_NICENESS="nice --$NOHUP_NICENESS nohup"
else
NOHUP_NICENESS="nohup"
fi
fi
init.d 스크립트를 만들 차례.
/usr/local/mysql/share/mysql
여기를 보면, mysql.server가 있다.
이것을 rc3.d에 적절히 소프트링크.
스크립트로 start와 stop이 잘 된다.
이로서 MySQL3 설치 끝.