본문 바로가기

아카이브/Linux

my.cnf

반응형

[naverlinuxusergroup 네이버 카페에서 무명me(engo****) 님 글 발췌]


웹서버일때, 보통 위치, /etc/my.cnf 
소스컴파일될때, 원본의 위치.
/usr/local/mysql/support-files/my-huge.cnf 으로 있다가,
cp /usr/local/mysql/support-files/my-huge.cnf   /etc/my.cnf  엔터침.
위의 명령으로 복사되고, 약간씩 변형되어 사용됨, 

@@@@@@@@@@@@@@@@@@@@
변형시킬때, 참고사항,
@@@@@@@@@@@@@@@@@@@@



[mysqld]
datadir = /data/mysql
socket = /var/lib/mysql/mysql.sock
user=mysql

init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci

big-tables
default-storage-engine = InnoDB             # 기본 엔진설정

skip-host-cache
skip-name-resolve                     # 역DNS 검색 비활성
skip-external-locking                     # 외부(TCP/IP) 잠금 비활성

max_connections = 500
table_cache = 256
wait_timeout = 50

## General 로그를 사용하려면 아래 설정은 그대로 유지하고
## MySQL 서버에 로그인한 후 “SET GLOBALgeneral_log=1″ 명령으로 활성화
general_log = 1                     # 0=제네럴로그 비활성
general_log_file = /var/log/mysql/general_query.log    # 제네럴로그 파일경로

log_slow_admin_statements                 # DDL쿼리도 슬로우 쿼리에 기록
slow-query-log = 1                     # 슬로우 쿼리로그 활성화
long_query_time = 1                     # 이 변수값보다 쿼리처리가 길게 걸린다면 에러로그에 기록
slow_query_log_file = /var/log/mysql/slow_query.log     # 슬로우 쿼리 로그파일 경로

## MySQL 스케줄러를 사용하려면 아래 event-scheduler 옵션을 ON으로 변경
#event-scheduler = OFF                     # 이벤트 비활성
sysdate-is-now                         # 함수 sysdate()와 now() 동일하게 처리

back_log = 100                         # 동시접속시 대기시킬수있는 커넥션 갯수
max_connections = 300                     # 최대 클라이언트 연결 갯수
max_connect_errors = 999999
thread_cache_size = 50                     # 다쓴 쓰레드를 스레드풀에 저장할 갯수
table_open_cache = 400                     # 각 쓰레드별 오픈할 테이블수
wait_timeout = 28800                     # 커넥션 최대 대기시간(초)

max_allowed_packet = 32M                 # 요청된 쿼리의 최대길이의 값
max_heap_table_size = 32M                 # MEMORY 테이블의 최대크기
tmp_table_size = 512K                     # 메모리 내의 임시테이블 크기 초과시 디스크에 저장

# 2012.09.13, xCode, ref http://dev.kthcorp.com/2011/07/01/mysql-innodb-storage-engine-benchmark/
#sort_buffer_size = 128K                 # 정렬에 필요한 버퍼의 크기 ORDER BY 또는 GROUP BY 연산 속도와 관련
#join_buffer_size = 128K                 # 조인이 테이블을 풀스캔 하기위해 사용하는 버퍼크기
#read_buffer_size = 128K                 # 테이블 스캔에 필요한 버퍼크기
#read_rnd_buffer_size = 128K                 # 디스크 검색을 피하기위한 랜덤 읽기 버퍼크기
sort_buffer_size = 512K                 # 정렬에 필요한 버퍼의 크기 ORDER BY 또는 GROUP BY 연산 속도와 관련
join_buffer_size = 6K                 # 조인이 테이블을 풀스캔 하기위해 사용하는 버퍼크기
read_buffer_size = 64K                    # 테이블 스캔에 필요한 버퍼크기
read_rnd_buffer_size = 256K                 # 디스크 검색을 피하기위한 랜덤 읽기 버퍼크기

query_cache_size = 32M                     # 쿼리 결과를 캐싱라기 위해 할당된 메모리 크기
query_cache_limit = 2M                     # 이 변수 값보다 큰 값은 캐싱이 안됨

group_concat_max_len = 1024                 # GROUP_CONCAT()함수 사용시 컬럼값 최대크기

# 2012.09.13, xCode, 1 chip x 8 core
thread_concurrency = 2                    # 쓰레스 갯수

## 마스터 MySQL 서버에서 “레코드 기반 복제”를 사용할 대는 READ-COMMIT 사용 가능
## 복제에 참여하지 않는 MySQL 서버에서는 READ-COMMIT 사용 가능
## 그 외에는 반드시 REPEATABLE-READ로 사용

transaction-isolation = REPEATABLE-READ         
# isolation 레벨 [READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE]

[innoDB]
innodb_file_per_table = 1                # 테이블 단위로 테이블스페이스 할당, 활성시 확장자 .ibd 파일이 생성됨
innodb_data_home_dir = /data/mysql                # innodb 홈디렉터리 경로
innodb_data_file_path = ibdata1:256M:autoextend        # 파일명 : 초기용량 : 자동증가 : 최대사이즈
innodb_autoextend_increment = 100             #테이블 스페이스 자동 확장시 크기
innodb_log_group_home_dir = /data/mysql 
innodb_log_arch_dir = /data/mysql                 # 로그 디렉터리 정보
innodb_buffer_pool_size = 10G                 # 데이터와 인덱스를 캐시하기 위해 사용하는 메모리 버퍼크기
                             # innodb에서 사용할 메모리 양으로 전체 메모리의 50~80% 정도로 설정
innodb_additional_mem_pool_size = 16M            # 데이터 디렉토리 정보와 내부 데이타 구조를 저장하는 메모리 풀의 크기
innodb_log_buffer_size = 16M                # Redo 로그 버퍼크기
                                # 로그 버퍼 사이즈로 성능에 맞춰 로그를 기록하는 경우 크게 설정
innodb_log_file_size = 64M                   # 로그 파일 사이즈로 버퍼풀 사이즈의 25% 정도로 설정
innodb_flush_log_at_trx_commit = 2            # 커밋 로그 옵션으로 성능 최적화로 1분마다 저장되도록 2로 설정
                            # 1=트랜젝션 실행할때마다 로그 파일에 기록되고 디스크 플러시가 실행
innodb_support_xa = OFF                 
# 트렌젝션 two-phase commit 지원, 디스크 플러시 횟수를 줄여 성능항상

                            # 분산데이터 기능 (2-PhaseCommit)
# 2012.09.13, xCode, 1 chip x 8 core
#innodb_thread_concurrency = 0                # InooDB내에 쓰레드 갯수, 변수 0은 쓰레드간 동시성 비활성화
innodb_lock_wait_timeout = 20                # 롤백이 진행되기 전에 LOCK을 대기하는 시간(초)
innodb_force_recovery = 0                 # 크래시 복구 모드 설정
innodb_flush_method = O_DSYNC                  # 성능을 위해 메모리에서 직접 액세스 하도록 설정

innodb_purge_threads = 1
innodb-read-io-threads = 2
innodb-write-io-threads = 2
innodb_thread_concurrency = 6
innodb-buffer-pool-instance = 3
# O_DIRECT=운영체제의 버퍼를 사용 않고 IO 실행, 
RAID 컨트롤러(캐시메모리 장착된)가 없거나 SAN 사용시 O_DIRECT를 사용 하지 않음

innodb_doublewrite = 0                     
# 이중 쓰기 버퍼 비활성

innodb_sync_spin_loops = 20                 
# 쓰레드가 지연되기 전에 (suspended) 풀어 주기 위해 InnoDB 뮤텍스 (mutex)를 기다리는 쓰레드의 대기 시간

innodb_table_locks = 1                     
# LOCK TABLES은 AUTOCOMMIT=0경우에, InnoDB로 하여금 내부적으로 테이블을 잠금

innodb_thread_sleep_delay = 1000             
# InnoDB 큐를 조이닝 (joining)하기 전에 InnoDB 쓰레드가 일시 정지 (sleep)하는 시간

innodb_max_purge_lag = 0                 
# 퍼지 연산 (purge operation)이 래깅 (lagging)될 때 INSERT, 
UPDATE 및 DELETE 연산을 지연 시키는 방법을 제어, 디폴트값 0일시 지연 없음

innodb_commit_concurrency = 0                 
# 동시에 실행되는 쓰레드의 숫자. 이 값이 0이 되면 동시성 제어 (concurrency control)가 비활성화

innodb_concurrency_tickets = 500             
# InnoDB에 동시에 들어갈 수 있는 쓰레드의 숫자는 innodb_thread_concurrency 변수로 알아볼 수가 있다. 
여러 개의 쓰레드가 이미 컨커런시 한계에 도달하였다면, 하나의 쓰레드만이 큐에 들어갈 수 있다. 
하나이 쓰레드가 InnoDB에 들어가게 되면, innodb_concurrency_tickets의 값과 일치하는 “자유 티켓”의 숫자가 주어지고, 
쓰레드가 자신의 티켓을 사용하기 전 까지는 자유롭게 InnoDB에 들어가고 나올 수가 있다. 
이런 후에는, 쓰레드는 다시금 일관성 검사를 하고 InnoDB에 다시 들어가려고 시도하게 된다

[mysql]
default-character-set=utf8
show-warnings                         # 경고 발생시 메세지 자동 출력
prompt=\u@\h:\d\_\R:\m:\\s>                 # SQL 프롬프트 설정
#pager=”less -n -i -F -X -E”                 # 데이터 출력시 페이징처리
#no-auto-rehash                     # 자동 완성 기능 비활성화
#safe-updates                         # 데이터 변경 또는 삭제시 wherer구문 필수입력

[myisam]
## InnoDB를 사용하지 않고 MyISAM만 사용한다면 key_buffer_size를 4GB까지 설정
key_buffer_size = 32M                     # 인텍스 캐시 크기
bulk_insert_buffer_size = 32M                 # 대량 삽입에 사용된 트리 캐시의 크기, 쓰레드당 각각 할당됨
myisam_sort_buffer_size = 1M                 # 인덱스 정렬시 할당되는 버퍼의 크기
myisam_max_sort_file_size = 2G                 # 인덱스 재 생성시 사용할 임시 파일의 최대 크기
myisam_repair_threads = 1                 # 정렬 복구시 사용될 쓰레드 갯수
myisam_recover                         # MyISAM 테이블을 열었을시 테이블 자동복구
ft_min_word_len = 3                     # 하나의 FULLTEXT 인덱스에 포함 되는 단어의 최소 길이 값, 
                            # 변경후 REPAIR TABLE tbl_name QUICK 으로 재 구축해야함

[mysqld_safe]
log-warnings = 1                     # 에러로그에 경고메세지 기록
log-error=/var/log/mysqld.log                # 에러로그 파일경로
pid-file=/var/run/mysqld/mysqld.pid            # 프로세스 ID 파일경로

# 2012.09.13, xCode
tcmalloc on


[ndbd]

connect-string="nodeid=2;host=localhost:1186"

[ndb_mgm]

connect-string="host=localhost:1186"

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


PHP.INI 환경 변수 설정하기

* MissFlash의 리눅스 유용 명령어 목록
php 환경설정(php.ini) : [Language Options]
engine = On : Apache에서 PHP 스크립트 언어 엔진 적용(Off로 설정시 PHP파일을 보여주지 못하고 다운로드하게 됨)
zend.ze1_compatibility_mode = Off : zend 엔진 버전1의 호환모드 설정
short_open_tag = On : <? 태그 사용 허용(Off로 설정시 <?php, 와 <script> 태그만 인식)
asp_tags = Off : ASP 스타일의 <%, %> 태그 사용여부 설정
precision = 12 : 부동소수점의 유효 자리수 설정
y2k_compliance = On : 2000년 호환모드로 설정
output_buffering = Off : 모든 파일의 출력 버퍼링 활성화 여부 설정(구체적인 숫자 입력시 출력 버퍼링을 특정 사이즈로 제한)
;output_handler = : 스크립트의 모든 출력을 특정 함수를 통해 할 수 있음
zlib.output_compression = Off : zlib을 사용해 페이지를 압축할 것인지 설정
;zlib.output_compression_level = -1 : 압축 레벨 설정
;zlib.output_handler = : zlib.output_compression을 활성화할 경우, 추가 출력 핸들러를 지정할 수 없음
implicit_flush = Off : On 설정시 print(), echo() 및 각 HTML 블록의 뒤에 flush()함수를 부르는 것과 동일하게 작용(성능저하 유발)
unserialize_callback_func = : unserialize 중에 정의되지 않은 클래스를 작성해야 할 경우, 콜백 함수를 호출(정의되지 않은 클래스를 작성해야 할 때마다 호출)
allow_call_time_pass_reference = On : 함수 사용시 변수를 강제적으로 참조하는 것 금지


php 환경설정(php.ini) : [Safe Mode]
safe_mode = Off : 안전모드 사용여부 설정
safe_mode_gid = Off : 파일이 열릴 때, UID 비교검사 수행(On 설정시 GID 비교검사 수행)
safe_mode_include_dir = : 지정한 디렉토리 및 하위 디렉토리의 파일을 include 하는 경우, UID/GID 검사 미수행
safe_mode_exec_dir = : (안전모드에서) system() 및 시스템 프로그램을 실행하는 함수의 경로(이 디렉토리에 없으면 함수를 실행할 수 없음)
safe_mode_allowed_env_vars = PHP_ : (안전모드에서) 지정된 문자로 시작하는 환경변수만 변경 가능
safe_mode_protected_env_vars = LD_LIBRARY_PATH : putenv()로 변경할 수 없는 환경변수 설정
;open_basedir = : 안전모드와 관계없이 PHP가 열 수 있는 디렉토리 설정
disable_functions = : 특정 함수 사용 금지 설정
disable_classes = : 특정 클래스 사용 금지 설정
;highlight.string = #DD0000 : 문법의 하이라이트 표시 설정(string, comment, keywork, bg, default, html 설정 가능)
;ignore_user_abort = On : 클라이언트가 연결을 끊었을 때, 스크립트 수행을 중단한 것인지 설정(기본값은 스크립트 중단)
;realpath_cache_siae = 16k : realpath 캐쉬 양 설정
;realpath_cache_ttl = 120 : 캐쉬의 유효기간을 초단위로 설정
expose_php = On : PHP가 해당 서버에 인스톨되고, 사용되고 있다는 내용 알림 설정(On 설정시 내용 알림)


php 환경설정(php.ini) : [Resource Limits]
max_execution_time = 30 : 스크립트 최대 실행시간(초단위) 설정
max_input_time = 60 : POST, GET, 파일업로드 등의 입력 데이터를 받아들이는 최대시간(초단위) 설정
memory_limit = 128M : 스크립트가 사용할 수 있는 최대 메모리양 설정


php 환경설정(php.ini) : [Error handling and logging]
error_reporting = E_ALL & ~E_NOTICE : E_NOTICE를 제외한 모든 에러 출력(다음의 항목들이 사용 가능함, E_ALL1, E_ERROR2, E_RECOVERABLE_ERROR3, E_WARNING4, E_PARSE5, E_NOTICE6, E_CORE_ERROR7, E_CORE_WARNING8, E_COMPILE_ERROR9, E_COMPILE_WARNING10, E_USER_ERROR11, E_USER_WARNING12, E_USER_NOTICE13)
display_errors = On : 에러 표시 설정(보안상 이 기능 대신 error_log를 사용할 것을 권장)
display_startup_errors = Off : PHP 시작시 에러 미표시 설정
log_errors = Off : 로그파일에 에러로그 기록여부 설정
ignore_repeated_errors = Off : 반복된 에러의 기록여부 설정(Off 설정시 반복 에러 기록 안함)
track_errors = Off : $php_errormsg에 마지막 에러/경고 메시지 저장 여부 설정
;html_errors = Off : 에러 메세지에 HTML 태그 추가여부 설정(Off 설정시 HTML 태그 미추가)
;error_prepend_string = "<font color=ff0000>" : 에러 메세지 앞에 출력하는 라인 설정
;error_append_string = "</font>" : 에러 메세지의 뒤에 출력하는 라인 설정
;error_log = filename : 지정된 파일에 에러 기록
;error_log = syslog : syslog에 에러 기록


php 환경설정(php.ini) : [Data Handling]
;arg_separator.output = "&" : PHP가 생성한 URL 인자를 구분하는 구분자 설정

;arg_separator.input = ";&" : PHP가 URL에서 변수를 분리하는데 사용하는 구분자 설정
variables_order = "EGPCS" : EGPCS14 변수의 파싱순서 설정(GP로 설정시 GET 변수는 같은 이름의 POST 변수에 덮어씌워짐)
register_globals = Off : 입력 데이터의 글로벌 변수 등록여부 설정(Off 설정시 $var 대신 $_REQUEST["var"], $_GET["var"], $_POST["var"] 등으로 써야 함 - 권장)
register_long_arrays = On : $HTTP_*_VARS 형태의 예약변수 등록 여부 설정(Off 설정시 $HTTP_GET_VARS 대신 $_GET 등의 자동 전역배열을 사용함 - 권장)
register_argc_argv = On : argc 및 argv 변수의 사용여부 설정
post_max_size = 8M : POST 데이터가 허용하는 최대 사이즈 설정(큰 파일 업로드시 post_max_size가 upload_max_filesize보다 커야함)
magic_quotes_gpc = On : GET/POST/Cookie의 입력 데이터에 포함된 작은 따옴표, 큰 따옴표, 역슬래쉬, NULL은 자동으로 역슬래쉬로 이스케이프할지 설정
magic_quotes_runtime = Off : DB나 텍스트 파일에 포함된 작은 따옴표, 큰 따옴표, 역슬래쉬, NULL을 자동으로 역슬래쉬로 이스케이프할지 설정
magic_quotes_sybase = Off : 작은 따옴표를 \' 대신 ''로 변환할지 설정(On 설정시 ''로 변환)
auto_prepend_file =, auto_append_file = : PHP 문서 전후에 추가할 파일 설정
default_mimetype = "text/html", default_charset = "utf-8" : Content-type: 헤더로 출력할 문자 인코딩 설정
;always_populate_raw_post_data = On : 항상 $HTTP_RAW_POST_DATA 변수를 선언할지 설정


php 환경설정(php.ini) : [Paths and Directories]
;include_path = ".:/php/includes" : require(), include(), fopen_with_path() 함수가 파일을 찾는 디렉토리 목록 설정
doc_root = : PHP 루트 디렉토리 설정(안전모드 설정시 루트 디렉토리 밖의 파일은 사용할 수 없음)
user_dir : PHP 파일을 사용하는 유저의 홈 디렉토리(public_html) 이름 설정
extension_dir = "/usr/local/server/php/modules" : 확장모듈 디렉토리 설정
extension = mysqli.so ; : PHP가 시작할 때 읽어들일 모듈 설정
enable_dl = On : dl() 함수를 유효하게 할 것인지 설정
; cgi.force_redirect = 1 : 대부분의 웹서버에서 PHP를 CGI로 사용할 때 보안을 위해 설정(기본값 On)
; cgi.redirect_status_env = ; : ?
;cgi.rfc2616_headers = 0 : PHP가 HTTP 응답코드를 보낼때 사용할 헤더 설정(0 설정시 Status: 헤더를, 1 설정시 RFC 2616 호환 헤더 전송)


php 환경설정(php.ini) : [File Uploads]
file_uploads = On : 파일 업로드 허가여부 설정 
;upload_tmp_dir = : HTTP로 파일 업로드시 임시 작업 디렉토리 설정(미 지정시 시스템 디폴트 디렉토리15가 사용됨)
upload_max_filesize = 2M : 업로드 파일의 최대 사이즈 설정


php 환경설정(php.ini) : [Fopen wrappers]
allow_url_fopen = Off : 파일 액세스시 외부사이트 파일을 불러올 수 있는지여부 설정(보안상 Off로 설정할 것을 권장함)
;from="admin@myhome.com" : 익명 FTP의 패스워드 설정
;user_agent = "PHP" : PHP가 전송하는 유저에이전트 설정
default_socket_timeout = 60 : 소켓기반 스트림의 기본 시간제한 설정
;auto_detect_line_endings = Off : fget(), file()로 읽은 데이터의 줄바꿈 방식 선택여부 설정(On 설정시 유닉스, MS-DOS, 매킨토시 방식 중 어떤 것을 사용할 것인지 검사)


반응형

'아카이브 > Linux' 카테고리의 다른 글

리눅스 터미널에서 usb mount(usb 사용)  (0) 2015.01.16
파일/폴더 복사  (0) 2015.01.16
[ssh] 원격접속  (0) 2015.01.11
[LEMP]설치방법  (0) 2015.01.10
[nginx]  (0) 2015.01.10