database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Tutorials 23265 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 23265
Inside the MySQL [시작과 종료]
작성자
이경환(babocom)
작성일
2005-03-08 13:48ⓒ
2005-03-15 00:06ⓜ
조회수
20,444

# 이 글도 언제 완성될지 기약없습니다.. 짬짬이 시간나는대로 수정하도록 하죠..

# mysql 실행 스크립트를 들여다보면서 나름대로 정리한 내용입니다.

 

mysql 을 이해하는데 있어 시작/종료 루틴을 알아두는 것이 여러모로 쓸모가 있다.

시작/종료 루틴을 이해하고 있으면 각종 오류시 원인을 파악하기가 쉽고 그에따라 대처할 수 있는 방법도 쉽게 생각해낼 수 있다.

 

mysql 서버를 시작하는 것은 아래와 같은 방법들로 할 수 있다.

1. mysqld 데몬을 직접 실행한다.

2. mysqld_safe 스크립트를 사용한다.

3. mysql.server 스크립트를 사용한다. (내부적으로 mysqld_safe 를 실행한다.)

 

이중 일반적으로 2 번이나 3번의 방법이 많이 사용된다.

3번의 경우는 보통 서버 부팅시 자동실행 방법으로 많이 사용된다.

 

시작은 mysqld_safe 스크립트를 통해 이루어진다. (4.0 이전까지는 safe_mysqld 이었으며 4.0 이후 하위호환을 위해 여전히 mysqld_safe 의 심볼릭 링크로 존재한다.)

 

mysqld_safe 스크립트가 하는 역할은

1. 명령줄 옵션들을 파싱해서 실제 mysqld 서버에게 전달하고 mysqld 를 실행

2. mysqld 가 실행되는동안 계속 감시하고 서버가 다운됐을때 자동으로 재시작.

3. mysqld 에서 콘솔에 뿌려지는 모든 메시지들을 파이프를 통해 에러로그에 기록하는 것

의 세가지 역할을 한다.

 

mysqld_safe 는 실행시 먼저 옵션파일이 존재하는지 찾은뒤 my_print_defaults 유틸을 통해 옵션파일을 적절한 옵션인자로 만들어낸다. 그리고 명령행 옵션들을 파싱한다. (결과적으로 같은 이름의 명령행 옵션이 옵션파일의 옵션값을 덮어쓰게 되므로 명령행에서 주어진 옵션이 최우선권을 가진다.)

 

그리고 pid 파일이 존재하는지 찾고 만약 있다면 mysqld 데몬이 실행되고 있는지 체크한다.

이때 실행되고 있는 mysqld 가 있다면 "A mysqld process already exists" 의 에러메시지를 내고 종료한다.

 

최종적으로 문제가 없다면 mysqld 데몬을 실행시키고 while 루프를 계속 돌면서 mysql 데몬이 죽으면 다시 실행시킨다. 또한 콘솔에 뿌려지는 메시지들을 파이프를 통해 에러로그에 기록한다.

 

종료는 mysql.server stop 의 명령으로 이루어진다.

(시작 또한 mysql.server start 명령으로 실행할 수 있으나 내부적으로 mysqld_safe 를 실행하므로 차이가 없다.. )

 

mysql.server 는 start, stop, restart 의 명령을 줄 수가 있고

restart 는 stop -> start 의 방식으로 동작한다.

 

서버 시작시 별도 옵션을 줄 필요가 없는 경우는

mysql.server start

mysql.server stop

의 두가지 명령만으로 mysql 서버를 시작,종료시키면 된다.

 

mysqld_safe 나 mysql.server 는 쉘 스크립트 파일이기 때문에

쉘 프로그래밍을 조금만 공부해 보시면 금방 파악할 수 있습니다.

 

실제 쿼리를 처리하고 DB 를 기록하는 것은 mysqld 에 의해 모두 이루어집니다.

[Top]
No.
제목
작성자
작성일
조회
23521Installation of SAP-DB including ODBC Support for PHP and Apache with Linux
정재익
2002-08-08
9564
23520SAPDB (Debian) Linux Quickstart Howto
정재익
2002-08-08
8259
23303Inside the MySQL
이경환
2005-03-14
10015
23265Inside the MySQL [시작과 종료]
이경환
2005-03-08
20444
23255[팁]리눅스 mysqldump 시 날짜붙여 압축덤프하기
이경환
2005-03-07
8041
22879[참고] mysql shutdown 스크립트 관련 문제점 [1]
문태준
2004-12-24
8946
22878mysql 접속폭주관련 참고자료 - 관련된 주요변수
문태준
2004-12-24
8388
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다