mysqld기동후 클라이언트로부터의 접속대기 상태로 되기까지에는 다음의 처리가 순서대로 이루어진다.
- bin_log스레드 작성
- ↓
- 호스트명 해결
- ↓
- my.cnf읽어들이기
- ↓
- 커맨드라인 옵션을 읽어들인다. my.cnf에서 읽어들인 옵션값을 커맨드라인에서 부여한 값으로 overwrite한다.
- ↓
- 각종 변수 초기화
- ↓
- 표준 캐릭터셋 설정. 사용가능한 캐릭터셋 리스트를 얻는다. charsets/Index.xml파일을 읽어들인다.
- ↓
- 시그널 접수 준비
- ↓
- datadir 확인
- ↓
- mysqld실행 계정 체크와 세팅
- ↓
- Query Cache버퍼준비
- ↓
- .err파일 오픈
- ↓
- 각종 로그파일(update-log, bin_log등) 오픈
- ↓
- InnoDB등 각 스토리지엔진 초기화
- ↓
- 네트워크 준비
- ↓
- PID파일 작성
- ↓
- 권한 테이블 읽어들이기
- ↓
- UDF 읽어들이기
- ↓
- STATUS초기화
- ↓
- slave 서버 준비
- ↓
- 만약 --bootstrap옵션이 지정되었다면 표준입력으로부터 SQL문을 읽어들이고 실행하고 종료
- ↓
- 만약 --init-file=옵션이 지정되었다면 지정된 파일을 읽어들이고 query를 실행.
- ↓
- Shutdown 스레드 생성
- ↓
- Maintenance 스레드 생성(mysqladmin커맨드를 위한 스레드)
- ↓
- 서버 기동 메세지를 표준에러나 .err파일에 기록. 서버 버전이나 소켓파일이름, 포트 번호등을 출력
- ↓
- 클라이언트로의 접속대기. Waiting for connections 메세지 출력