Database

InnoDB 설치 하기

페이지 정보

본문

기존의 MySql 에서는 트랜잭션 기능을 제공하지 않는다.

이 트랜색젼 기능을 설치 하기 위해서는 따로  InnoDB를 설정 해 주어야 한다.

다음은 InnoDB 설정에 관련된 메뉴얼이다. 이 것은 2004년 4월 9일에 작성되었다.

 

 

트랜잭션을 사용하려면 mysql이 InnoDB를 지원해 주어야 한다. 하지만 지금은 InnoDB 테이블을 만들 수 없다. InnoDB를 만들 수 있게 하는 설정을 알아보자. 먼저 /usr/share/doc/packages/MySQL 로 이동 하여 보자. 그 폴더를 살펴보면 my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf 가 보일 것이다. 이 것중에서 my-medium.cnf를 /etc 폴더에 my.cnf 이름으로 카피한다.
 -> # cd /usr/share/doc/packages/MySQL
 -> # cp my-medium.cnf /etc/my.cnf
이제 my.cnf 파일을 열어보자 다른 곳은 가만히 놔두고 다음과 같은 곳의 주석을 제거해준다.


--------------------------------------------------------

 innodb_data_home_dir = /home/mysql/
 innodb_data_file_path = ibdata1:10M:autoextend
 innodb_log_group_home_dir = /home/mysql/
 innodb_log_arch_dir = /home/mysql/
 set-variable = innodb_buffer_pool_size=16M
 set-variable = innodb_additional_mem_pool_size=2M
 set-variable = innodb_log_file_size=5M
 set-variable = innodb_log_buffer_size=8M
 innodb_flush_log_at_trx_commit=1
 set-variable = innodb_lock_wait_timeout=50
 innodb_flush_log_at_trx_commit=1
 set-variable = innodb_lock_wait_timeout=50
--------------------------------------------------------

 

주석을 제거해주고 파란색으로 되어 있는 부분을 보면 /var/lib/mysql 이라고 되어 있을 것이다. 이 것을 /home/mysql 로 바꾸어준다. 이제 바꾼 것을 저장하고 다시 mysql을 실행 시켜준다. InnoDB가 제대로 실행이 되었다면 /home/mysql 폴더에 ib_로 시작하는 파일들이 생겼을 것이다.

 

 

InnoDB 테이블을 생성해보자.
mysql> create table test (id int not null primary key auto_increment, name varchar(50) not null, key test_name(name)) type=innodb;
mysql> show table status
로 테이블의 상태를 확인해 보자 InnoDB 라고 되어 있을 것이다. 테이블이 생성되었다면
mysql> insert into test (name) values ('aaa');
mysql> insert into test (name) values ('bbb');
mysql> begin;
이제 트랜젝션을 실행한다.
mysql> insert into test (name) values ('ccc');
테이블을 확인해 보면 aaa, bbb, ccc 가 들어가 있을 것이다. 이제 롤백을 한다.
mysql> rollback;
다시 테이블을 확인해보면 트랜젝션 하기 전인 aaa, bbb 만 들어가 있을 것이다.

관련자료

등록된 댓글이 없습니다.
Today's proverb
성공하느냐 실패하느냐는 다른 사람이 아닌 바로 내가 하는 일이다. 내가 바로 힘이다. 나는 내 앞의 장애물을 치울 수도 있고, 미로 속에서 길을 잃을 수도 있다. 내 선택, 내 책임 이다. 이기거나 지는 것은 오직 나만이 가진 내 운명의 열쇠에 달려있다. (알레인 맥스웰)