2011년 12월 11일 일요일

centOS5.6에 mysql 5.5.13 설치

mysql 5.5.10 이상의 버전에서부터는 ./configure가 아닌 cmake로 빌드.
이를 위해 cmake를 바이너리 소스로 설치.

wget
 http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

설치시 C compiler 오류 발생시 
# yum install gcc-c++


# tar xvfz cmake-2.8.4.tar.gz
# cd cmake-2.8.4
# ./bootstrap
# make && make install


[출처] mysql 5.5.10 소스 설치 하기(CentOS 5.5)|작성자 삽질맨

mysql 그룹, 계정 생성 

# groupadd mysql
# useradd -g mysql mysq

mysql 컴파일 전 요구되는 모듈들을 설치한다.

# wget ftp://ftp.pbone.net/mirror/dev.mysql.com/pub/Downloads/MySQL-5.5/MySQL-devel-5.5.13-1.rhel5.i386.rpm 

# rpm -Uvh --force --nodeps MySQL-devel-5.5.13-1.rhel5.i386.rpm


# yum -y install zlib curl gcc g++ cpp gcc-c++ openssl openssl-devel ncurses-devel libtermcap-devel libc-client-devel bison

 

tar xvfz mysql-5.5.13.tar.gz
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql/data -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306
# make && make install
 
# chown mysql:mysql /usr/local/mysql

# chown -R mysql:mysql /usr/local/mysql/data
# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
# cp support-files/my-medium.cnf /etc/my.cnf
# cp support_files/mysql.server /etc/init.d/mysqld
# vi /etc/init.d/mysqld
# datadir=/usr/local/mysql/data

# service mysqld start 
# ps -ef | grep mysqld

서버 기동시 자동실행을 위해 chkconfig에 올려준다.

# chkconfig --add mysqld
# chkconfig --level 35 mysqld on
# chkconfig --list | grep mysqld

mysql 서버에 접속.
# /usr/local/mysql/bin/mysqladmin -uroot password 
# /usr/local/mysql/bin/mysql -uroot -p
cd /usr/local/mysql

mysql의 lib를 /usr/lib에 심볼릭 링크

# ln -s lib lib 

사용자 등록 및 권한 설정

# mysql -uroot -p
mysql> use mysql;
mysql> describe user;

// 로컬호스트 사용자 등록
mysql> insert into user (Host,User,Password) values('localhost','userid',password('userpasswd'));

// 원격접속 사용자 등록 [ 컬럼 개수(desc user)만큼 'N' ]
mysql> insert into user values('Remote_IP', 'userid',password('userpasswd'),'N','N','N','N','N','N','N','N','N','N','N',...);

// 사용자 등록 시 'Y' 이면 모든 db에 모든 권한을 다 주는 것임[ 컬럼 개수(desc db)만큼 'Y' ]
mysql> insert into db values('localhost', 'dbname', 'userid','Y','Y','Y','Y','Y',...);

//3306포트 외부접속 허용
mysql> grant all privileges on *.* to '사용자아이디'@'%' identified by '비밀번호';
 

mysql> create database dbname;
mysql> flush privileges;
# /etc/init.d/mysql restart

댓글 없음:

댓글 쓰기