InnoDB 설치 하기
컨텐츠 정보
- 23,287 조회
- 54 추천
- 목록
본문
기존의 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 만 들어가 있을 것이다.
이 트랜색젼 기능을 설치 하기 위해서는 따로 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 만 들어가 있을 것이다.
관련자료
댓글 0
등록된 댓글이 없습니다.