RedHat Enterpirse Linux 6.5에서 Mysql-5.6.21설치하기
1. 설치 환경
OS : RHEL 6.5 64Bit
DB : Mysql-5.6.21 Source Package (Mysql-5.6.21.tar.gz)
Mysql 경로 : /usr/local/mysql
Mysql Config 경로 : /usr/local/mysql/Config/my.cnf
DATA 경로 : /DATA
2.사용자 생성
#groupadd mysql
#useradd ?g mysql mysql
#passwd mysql (mysql 계정에 대해서 패스워드는 선택사항)
4. 컴파일 (cmake -> make -> make install)
#cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock
-DDEFAULT_CHARSET=utf8
-DDEFAULT-COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/DATA
-DSYSConFDIR=/usr/local/mysql/Config
-DENABLED_LOCAL_INFILE=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DENABLED_LOCAL_INFILE=1
-DMYSQL_USER=mysql
-DMYSQL_TCP_PORT=3306
-DENABLE_DOWNLOADS=1
#make && make install
#cp support-files/my-default.cnf /usr/local/mysql/Config/my.cnf
5.권한 수정
#chown -R mysql.mysql /usr/local/mysql
#chown -R mysql.mysql /DATA
6.DB 생성
#./usr/local/mysql/scripts/mysql_install_db
--defaults-file=/usr/local/mysql/Config/my.cnf
--user=mysql
--basedir=/usr/local/mysql
--datadir=/DATA
--explicit_defaults_for_timestamp=on
7.서비스 설정 및 확인
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#vim /etc/init.d/mysqld (46,47번 라인)
basedir=/usr/local/mysql/
datadir=/DATA/
#chkconfig mysqld on
#chkconfig ?-list | grep mysqld
8.Mysql 서비스 실행
#service mysqld stat
(오류 발생시 문서 아래 오류 가이드 참조)
9.Mysql 서비스 정상 로그인 확인
# /usr/local/mysql/bin/mysql -u root
mysql>
10.Mysql 오류 가이드
> Starting MySQL....The server quit without updating PID file[FAILED]ib/mysql/200-VM.pid)
mysql 경로가 틀려서 my.cnf 파일 내에서 경로를 지정해준다.
(여기서는/usr/local/mysql/Config/my.cnf 파일을 수정해준다)
> COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
charset 과 collation 이 틀려서 발생하는 오류 이므로 /usr/local/mysql/Config/my.cnf
파일안에 [mysqld] 아래에 3줄을 추가 해준다.
character-set-server = utf8
collation-server =utf8_general_ci
character-set-client-handshake = false