http://dev.mysql.com/doc/refman/5.1/en/replacing-builtin-innodb.html
1. 다운로드
www.mysql.com 에서 mysql-5.1.46.tar.gz 다운로드
2. root 권한으로 설치가 되어 있는지 확인 후(되어 있으면 삭제) 압축 해제
3. 컴파일 필요 패키지 목록
cnurses-devel
libtermcap-devel
gcc-c++
기존 RPM 버전 확인
# su – root
# rpm -qa | grep mysql
기존 RPM 존재 하면 버전 삭제
# rpm -e MySQL리스트항목 –nodeps
4. mysql-5.1.46 폴더로 이동후 컴파일 설정후 컴파일
다운 위치로 이동후 압축해제
# tar zxvf mysql-5.1.46.tar.gz
# cd mysql-5.1.46
# ./configure –help ( 옵션 확인 )
./configure –prefix=/usr/local/mysql ( /usr/local/mysql 경로에 설치 )
–localstatedir=/usr/local/mysql/data ( /usr/local/mysql/data DB 데이터를 data에 설치 )
–sysconfdir=/etc ( 환경설정파일이 저장될 경로 )
–with-charset=utf8 ( character )
–with-extra-charsets=all
–with-plugins=innobase ( 트랜잭션을 위한 innoDB )
# ./configure –prefix=/usr/local/mysql-5.1 –localstatedir=/usr/local/mysql-5.1/data –sysconfdir=/etc –with-charset=utf8 –with-extra-charsets=all –with-plugins=innobase
만약 gcc 에러가 난다면
# yum -y install gcc-c++
만약 checking for termcap functions library… configure: error: No curses/termcap library found <– 에러 발생
# yum list termcap -> installed 되어 있음
# yum list curses -> installed 되어 있음
그렇다면 configure 옵션에 추가 해 준다. –with-named-curses-libs=/usr/lib/libncursesw.so.5
# ./configure –prefix=/usr/local/mysql-5.1 –localstatedir=/usr/local/mysql-5.1/data –sysconfdir=/etc –with-charset=utf8 –with-extra-charsets=all –with-plugins=innobase
컴파일 하기
# make
# make install
5. MySQL 계정 생성 및 MySQL 경로소유권 변경
계정정보 확인
# cat /etc/passwd
# groupadd mysql
# adduser -M -c Mysql_server -d /usr/local/mysql-5.1 -g mysql -s /bin/nologin mysql
6. MySQL 데이터 베이스 디렉터리 생성
# /usr/local/mysql-5.1/bin/mysql_install_db
디렉토리 생성 확인
# cd /usr/local/mysql-5.1/data
# ls
mysql test
만일 /usr/local/mysql-5.1/data 생성되지 않으면 rpm 버전 mysql을 제거 한다.
7. 디렉터리 소유권 변경
# chown root.mysql -R /usr/local/mysql-5.1 (디렉토리 소유권 변경)
# chown mysql.mysql -R /usr/local/mysql-5.1/data
8. MySQL 라이브러리 위치 지정
# cat >> /etc/ld.so.conf
/usr/local/mysql-5.1/lib
Ctrl + D 눌러 저장 종료
# ldconfig
9. MySQL 설정 파일 복사
# cd /usr/local/mysql-5.1/share/mysql
# vi my-medium.cnf
# cp /usr/local/mysql-5.1/share/mysql/my-medium.cnf /etc/my.cnf
10. 방화벽 설정 (버전마다 틀릴수 있음)
# vi /etc/sysconfig/iptables
아래 내용 추가
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 3306 -j ACCEPT
# service iptables restart
11. MySQL 서버 데몬 띄우기
# /usr/local/mysql-5.1/bin/mysqld_safe -user=mysql &
만일 ./mysql-bin.index’ not found (Errcode: 13) <– 이런 에러가 났을 경우
해당 data디렉토리의 permission 을 바꾸주면 된다.
# chown -R mysql.mysql /usr/local/mysql-5.1/data ( 해당 data 디렉토리 )
데몬 확인
# ps ax | grep mysqld
만일 구동실패시 데이터 베이스 경로의 소유권 점검
12. 부팅시 자동 MySQL 데몬 작동
# cp /usr/local/mysql-5.1/share/mysql/mysql.server /etc/init.d/mysqld
# chkconfig –level 3 mysqld on
# chkconfig –level 5 mysqld on
13. MySQL 초기 구동해서 루트 비번 설정
# /usr/local/mysql-5.1/bin/mysql -p mysql
Enter password: 그냥 앤터
> update user set password=password(‘1234′) where user=’root';
> flush privileges;
> quit
14. MySQL DB 생성 및 사용자 생성
# /usr/local/mysql-5.1/bin/mysql -u root -p
Enter password:
> create database se;
> use mysql;
> insert into user(host,user,password) values(‘localhost’,’seban’,password(‘seban00′));
> insert into db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Create_tmp_table_priv,Lock_tables_priv,Create_view_priv,Show_view_priv,Create_routine_priv,Alter_routine_priv,Execute_priv,Event_priv,Trigger_priv)
values(‘%’,’se’,’seban’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);
만일 등록시 에러가 나면
select * from db; 실행해서 컬럼 갯수를 마춰줌
> flush privileges;
> exit
# /usr/local/mysql-5.1/bin/mysqladmin -p reload
Enter password:
15. MySQL 테이블 만들기
# /usr/local/mysql-5.1/bin/mysql -u seban -p
Enter password:
> use se;
> create table member(
id varchar(12) not null primary key,
passwd varchar(12) not null,
name varchar(12) not null,
reg_date datetime not null
);
> show tables;