HOME > 이용안내
이용안내
 
작성일 : 23-01-14 22:23
[DB] mysql에서 innodb 설치 및 옵션 설명
 글쓴이 : 제이네트워크
조회 : 13,441  

[DB] Mysql에서 innodb 설치 및 옵션 설명


1. 설치가 안되어 있을 때

1) 설치 여부 확인

mysql> show variables like 'have_innodb';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| have_innodb   | NO   |

+---------------+-------+

1 row in set (0.00 sec)

 

2) 2가지의 설치 방법

@ mysql 설치 시에 configure 추가 설치(or 재컴파일 설치)

configure 시에 option 추가( --with-plugins=innobase)

./configure --prefix=/usr/local/mysql --with-charset=euckr --with-extra-charsets=all --with-plugins=innobase                                       옵션 추가

설치된 mysql plugins 설치

my.cnf 파일 설정 추가

#vi /etc/my.cnf

[mysqld] [mysqld] 밑에 2줄 추가

ignore-builtin-innodb                                      

plugin-load=innodb=ha_innodb_plugin.so

mysql 재시작

 

2. 설치는 되어있지만 사용 설정이 없을 때

1) 설치 여부 확인

mysql> show variables like 'have_innodb';

+---------------+----------+

| Variable_name | Value    |

+---------------+----------+

| have_innodb   | DISABLED |

+---------------+----------+

1 row in set (0.00 sec)


2) my.cnf 설정 변경

#vi /etc/my.cnf                                              내용 중에 skip-innodb검색 후 주석처리

#skip-innodb

Mysql 재시작

 

3. innodb default 설정

#vi /etc/my.cnf

[mysqld]

default-table-type=innodb                                추가 후 재시작

 

4. 발생할 수 있는 에러

1) InnoDB: Error: data file /usr/local/mysql/data/ibdata1 is of a different size (innodb 에러)

#vi /usr/local/mysql/var/[도메인].err                                          로그 확인 시

InnoDB: Error: data file /usr/local/mysql/data/ibdata1 is of a different size

InnoDB: 640 pages (rounded down to MB)

InnoDB: than specified in the .cnf file 128000 pages!

InnoDB: Could not open or create data files.

InnoDB: If you tried to add new data files, and it failed here,

InnoDB: you should now edit innodb_data_file_path in my.cnf back

InnoDB: to what it was, and remove the new ibdata files InnoDB created

InnoDB: in this failed attempt. InnoDB only wrote those files full of

InnoDB: zeros, but did not yet use them in any way. But be careful: do not

InnoDB: remove old data files which contain your precious data!

 

#vi /etc/my.cnf                                                                   설정 내역 확인

innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend

innodb_data_file_path = ibdata1:10M;ibdata2:10M:autoextend          10M로 변경

2) InnoDB 실제 pages(640 Pages)과 my.cnf pages(128000 Pages)이 틀려 발생하는 에러

1 page = memory 16Kbyets

640 pages = 10Mbytes

128000 pages = 2000Mbytes

 

관련링크 : http://www.mail-archive.com/mysql@lists.mysql.com/msg76029.html

 

5. 옵션 설명

#vi /etc/my.cnf

 

[mysqld]

……

innodb_data_home_dir = /usr/local/mysql/data/innordb/

innodb_log_group_home_dir = /usr/local/mysql/data/innordb/

innodb_data_file_path = innordata1:256M:autoextend:max:2000M

innodb_autoextend_increment = 10M

innodb_file_per_table

innodb_buffer_pool_size = 2G

innodb_additional_mem_pool_size = 20M

innodb_flush_log_at_trx_commit = 2

innodb_log_file_size = 512M

innodb_log_buffer_size = 2M

innodb_lock_wait_timeout = 50

innodb_flush_method = O_DSYNC

max_connections = 500

 

A. innodb_data_home_dir

 : 테이블스페이스 파일의 생성 위치 설정

B. innodb_data_file_path

 : 테이블스페이스 파일 명 및 크기옵션 설정

innordata1:256M:autoextend:max:2000M

innordata1라는 파일명으로 생성되고 256MB의 고정크기로 최초 생성되며용량이 256MB가 넘을 경우 “autoextend”라는 옵션으로 자동으로 파일 크기가 확장되며최대 확장되는 크기는 MAX 옵션의 설정 값만큼 확장

C. innodb_autoextend_increment

 : autoextend 옵션으로 자동 확장되는 크기 지정디폴트는 8M

D. innodb_file_per_table

 : 공용 테이블스페이스 사용 대신에 테이블 별 테이블스페이스 사용 옵션

TableName.idb 파일 생성

E. innodb_log_group_home_dir

 : 로그 파일에 대한 디렉토리 경로 설정

F. innodb_buffer_pool_size

 : 자신의 테이블에 있는 데이터와 인덱스를 캐시하기 위해 사용하는 메모리 버퍼의 크기이 값을 크게 설정하면 할수록테이블에 있는 데이터를 접속하는데 필요한 I/O가 덜 생김전체 메모리의 60~80%로 설정

G. innodb_additional_mem_pool_size

: InnoDB가 데이터 디렉토리 정보와 다른 내부 데이터 구조를 저장하기 위해 사용하는 메모리 풀의 크기

H. innodb_flush_log_at_trx_commit

자신의 테이블에 있는 데이터와 인덱스를 캐시하기 위해 사용하는 메모리 버퍼의 크기이 값을 크게 설정하면 할수록테이블에 있는 데이터를 접속하는데 필요한 I/O가 덜 생김전체 메모리의 60~80%로 설정

I. innodb_flush_log_at_trx_commit

: commit 을 하였을때 그 즉시 commit 된 데이터를 log file 에 기록할지 안할지를 설정

0 - log buffer내용이 1초 간격으로 로그파일에 쓰여지고 flush, commit시 미동작

1 - log buffer내용이 commit할 때에 로그 파일에 쓰여지고 flush

2 - log buffer내용이 commit할 때에 로그 파일에 쓰여지고 flush 1초 간격으로 동작

J. innodb_log_buffer_size

: InnoDB가 로그 파일을 디스크에 쓰기 위해 사용하는 버퍼의 크기사용 가능한 크기는 1~8MB, 디폴트는1MB.

K. innodb_log_file_size

로그 파일의 크기 설정디폴트는 5MB, 로그 파일은 하나의 파일에 계속 저장되는 것이 아니고 순차적으로 파일이 일정한 크기와 용량으로 순환식으로 생성, innodb_buffer_pool_size 25% 정도로 설정.

L. innodb_lock_wait_timeout

트랜젝션의 타임아웃은 롤백이 진행되기 전에 락을 대기하는 시간디폴트는 50.

M. innodb_flush_method

: Flush 명령어 방식 설정디폴트는 fdatasync.

fdatasync - fsync()를 사용해서 데이터와 로그 파일을 flush

O_SYNC - 로그 파일을 열고 flush하지만데이터 파일을 flush하기 위해서는 fsync()를 사용

O_DIRECT - O_DIRECT를 사용해서 데이터 파일을 열고데이터 파일과 로그 파일을 flush (몇몇 GNU/Linux 버전에서 사용 가능함)

 Windows에서는 flush 방식은 항상 async_unbuffered 사용

N. innodb_thread_concurrency

: InnoDB 내부에 OS 쓰레드의 숫자 설정설정된 값과 같거나 적게 유지권장하는 값은 여러분이 사용하는 시스템의 프로세스와 디스크의 전체 합설정 값의 범위는 0~100.

 

3. InnoDB Table 생성(Default Engine InnoDB가 아닐 경우)

 . Table 생성시

  : InnoDB 테이블을 생성하기 위해서는, CREATE TABLE 명령문에서 ENGINE = InnoDB 옵션을 지정한다:

CREATE TABLE customers (a INT, b CHAR (20), INDEX (a)) ENGINE=InnoDB;

 . MyISAM 테이블을 InnoDB로 변환

: Alter문 사용하여 변경

 ALTER TABLE tablename ENGINE=INNODB;






Cloud server Streaming service Domain Cloud Firewall

 
 

Total 382

번호 제   목   글쓴이 날짜 조회
382 [리눅스서버] 명령어의 내용정리 modprobe ip_conntrack_ftp 제이네트워크 2024-11-21 122
381 [리눅스서버] 명령어의 내용 정리 modprobe ip_conntrack_ftp 제이네트워크 2024-11-21 123
380 [리눅스서버] cent7 OS repo 가 안될때 추가 repo 제이네트워크 2024-11-15 308
379 [리눅스서버] [Rocky9] 로키리눅스에서 네트워크 설정방법 제이네트워크 2024-06-22 4441
378 [리눅스서버] [Rocky9] SSH Root 로그인하는 접속허용방법 제이네트워크 2024-06-22 4232
377 [DB] Linux에서 MYSQL 데이터 디렉토리 변경하기 제이네트워크 2023-01-14 12555
376 [DB] phpmyadmin에서 'mcrypt 확장모듈을 불러올 수 없습니다' 에러 시 제이네트워크 2023-01-14 14551
375 [DB] mysql에서 innodb 설치 및 옵션 설명 제이네트워크 2023-01-14 13442
374 [DB] [MySQL] mysql error 1364 Field doesn't have a default values 해결방법 입니다. 제이네트워크 2023-01-14 13953
373 [리눅스서버] 우분투서버 apt 에러 - 미러사이트 변경 제이네트워크 2021-12-29 23716
372 [리눅스서버] 아파치 웹서버에서 mod_rewrite 모듈 추가 설치하기 제이네트워크 2021-11-03 24010
371 [메일] Centos7 sendmail설치 제이네트워크 2021-09-09 27390
370 [리눅스서버] Centos7 에서 SQLSRV / PDO_SQLSRV 모듈 추가 설치 제이네트워크 2021-08-26 29079
369 [리눅스서버] Centos7 SFTP 설정 및 Chroot 처리 방법 제이네트워크 2021-08-18 25172
368 [리눅스서버] 리눅스서버에서 아파치웹 서버 / php 버전 노출방지 제이네트워크 2021-07-19 26287
367 [메일] 아웃룩 메일 수발신할 때 (메일오류코드 2) 제이네트워크 2021-05-28 108414
366 [메일] 리눅스 쉘에서 telnet으로 메일발송테스트 하기 제이네트워크 2021-05-27 24721
365 [PHP] php에서 shmop 모듈 추가 설치하기 제이네트워크 2021-05-27 20631
364 [PHP] php_ftp 추가 모듈 설치 하기 제이네트워크 2021-05-27 21216
363 [기타] ESXi 호스트의 root 로 접근이 불가능한 이슈 제이네트워크 2021-04-08 28474
362 [메일] [Sendmail 포트변경] Sendmail에서 smtp 포트를 587포트로 변경하기 제이네트워크 2020-12-20 27337
361 [메일] [Sendmail 스팸 IP ADDRESS 체크] 제이네트워크 2020-12-20 26883
360 [DB] [mysql 디비체크] myisamchk 사용 옵션 제이네트워크 2020-12-20 23432
359 [DB] mysql 로그 최적화 하기 제이네트워크 2020-12-20 24055
358 [리눅스서버] 아파치서버에서 동시접속자 수를 알아보려고 할 때 제이네트워크 2020-12-19 30658
357 [리눅스서버] Apache서버에 mod_url 추가 설치 제이네트워크 2020-12-19 30483
356 [리눅스서버] Cronlog 설정 하는 법 제이네트워크 2020-12-19 30799
355 [메일] [sendmail] 메일발송이 안될 때 (오류 Relaying temporarily denied. Cannot resolve PTR recor… 제이네트워크 2020-07-15 29003
354 [기타] 그누보드4(EUCKR)에서 그누보드5(UTF8)로 데이타이전 하기 제이네트워크 2020-06-28 30792
353 [리눅스서버] mkfs로 포맷이 안되는 경우 (오류 dev/sdb2 is apparently in use by the system; will not mak… 제이네트워크 2020-04-02 34389
352 [리눅스서버] 우분투18.04 vi 에디터에서 글자가 깨져 보일 때 제이네트워크 2019-11-17 33743
351 [리눅스서버] 우분투18.04 에서 rc.local 파일 사용하기 제이네트워크 2019-11-17 34440
350 [리눅스서버] [아파치conf 비교]apache2.2.x 와 apache-2.4.x 의 차이점 제이네트워크 2019-10-13 37355
349 [리눅스서버] 리눅스 컴파일에러 error : Autoconf version 2.68 or higher is required on CentOS 제이네트워크 2019-10-07 39906
348 [DB] MSSQL2016 에서 서버유지관리/ 백업스케쥴 실행시 에러가 날때 제이네트워크 2019-08-22 28296
347 [PHP] php에서 세션을 늘리는 방법 제이네트워크 2019-08-22 26276
346 [DB] [mysql]MySQL 5.6 SQL STRICT 모드 변경 방법 제이네트워크 2019-08-14 32874
345 [리눅스서버] vsftpd.conf 설정내용 제이네트워크 2019-08-14 36054
344 [리눅스서버] 리눅스 메인보드 교체후 네트워크 재설정 제이네트워크 2019-07-04 38563
343 [리눅스서버] SFTP 퍼미션 조정 및 chroot 설정으로 상위폴더 접근 제한하기 제이네트워크 2019-06-30 38230
 1  2  3  4  5  6  7  8  9  10