본문으로 바로가기

MySQL5.1.32 소스 설치

category 서버&시스템/Linux 2011. 12. 16. 18:08

 

 

CentOS 5.4 서버에 APM을 소스 설치한 내용을 정리한다. 내용이 길어서 네번에 나누어 포스팅을 하게 되었다.

 

MySQL  버전

MySQL 설치 요약

  1. mysql 그룹/유저 생성, configure – make, mysql DB 설치
  2. 디렉토리에 권한 지정, my.cnf 파일 수정
  3. 서버 실행, password 지정, 부팅 시 데몬 자동 실행 설정

 

MySQL 설치

 

$ groupadd mysql
$ useradd -g mysql mysql
$ ./configure --prefix=/usr/local/mysql --with-charset=euckr --with-extra-charsets=all --sysconfdir=/etc --localstatedir=/usr/local/mysql/data
$ make && make install

mysql이라는 그룹을 만들고, mysql이라는 유저를 추가한다. configure 옵션은 필요한대로(euckr/utf8).

 

$ cp support-files/my-medium.cnf /etc/my.cnf       # my-medium.ncf 파일 외에 시스템에 맞는걸로 해도 됨
$ cd /usr/local/mysql/bin
$ ./mysql_install_db

mysql DB를 생성한다. OK 문구를 꼭 봐야한다.

 

$ chown -R root.mysql /usr/local/mysql
$ chown -R root.mysql /usr/local//mysql/bin
$ chown -R mysql.mysql /usr/local/mysql/data

각 디렉토리에 권한을 준다.

 

vi /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
…
[client]
socket=/tmp/mysql.sock

위 설정을 확인한다.

 

$ ./mysqld_safe &
$ ./mysqladmin -u root -p password '패스워드'
Enter password:     # 그냥 엔터

이제 다 됐으니 데몬을 실행한 후 패스워드만 지정하면 설치는 끝.

 

$ cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
$ chkconfig --level 3 mysqld on   # 콘솔 부팅 시
$ chkconfig --level 5 mysqld on   # X-Window 부팅 시

부팅 시 자동으로 데몬이 실행되도록 설정한다.

끝.

 

4.x 버전을 설치하며 작성했던 문서대로 되지 않아 난감했다.

5.x 버전부터는 mysql 유저를 반드시 추가하도록 변경되었단다.

 

에러 메시지 처리

[root@localhost bin]# 100208 17:39:11 mysqld_safe Logging to ‘/var/log/mysqld.log’.
100208 17:39:12 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
100208 17:39:12 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

권한 지정 작업을 생략하면 위와 같은 메시지를 볼 수 있다.
(추가)
권한 지정을 했더라도 위와 유사한 메시지가 나올 수 있다.
이는 my.cnf로 복사한 파일의 설정 문제이므로, my.cnf 파일에서 skip-federated 부분에 #을 붙여 주석처리하자.

 

./mysqladmin: connect to server at ‘localhost’ failed
error: ‘Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)’
Check that mysqld is running and that the socket: ‘/tmp/mysql.sock’ exists!

my.cnf 파일에 socket 경로를 수정하지 않으면 위와 같은 메시지를 볼 수 있다.