2009년 7월 14일 화요일

MySQL 기동과 정지 2

Windows에서 mysqld기동과 정지

1.mysqld 기동
Windows환경에서 mysqld를 직접기동하는데에는 다음과 같이 조작한다.
mysqld 직접기동
c:¥mysql¥bin> mysqld-nt --standalone
또는
c:¥mysql¥bin>mysqld-nt

커맨드 프롬프트내에서 mysqld를 --standalone을 붙이지 않고 기동하면 mysqld가 계속 foreground에서 동작한다.
이 때 커맨드 프롬프트를 죽이면 mysqld가 강제적으로 정지되게 되어 버퍼에 남아있던 데이터가 사라지게 되어 파일이 맞지않는 경우가 발생할 가능성이 생긴다.

--standalone을 붙이게 되면 mysqld는 백그라운드에서 동작하게 된다.

또, SCM(Windows Service Control Manager)에 서비스를 등록하고 있는 경우는 SCM을 이용해서 기동한다.
예를 들어 MySQL서비스를 MySQL 이라는 이름으로 등록한 경우에 다음처럼 조작해서 기동한다.

SCM에서 기동
c:¥mysql¥bin> NET START MySQL

SCM에 mysql를 등록
SCM에 데몬을 등록할 때에는 다음과 같이 조작한다.

서비스추가
c:¥mysql¥bin> mysqld-nt --install [서비스명] [mysqld옵션]

[서비스명]을 생략하면 MySQL이라는 이름으로 SCM에 등록된다.
[mysqld옵션]은 한개만 지정가능하다.
대부분의 경우 --defaults-file=이나 --defaults-extra-file=이 지정된다.
MySQL Windows 인스톨러 버전에서 MySQL을 인스톨하게 되면 서비스에는 --defaults-file=옵션이 추가되어 등록되게 된다.

또, 서비스를 삭제할 때에는 다음과 같이 한다.

서비스의 삭제
c:¥mysql¥bin> mysqld-nt --remove [서비스명]

2.mysqld정지
mysqld를 직접기동한 경우는 다음과 같이 조작해서 정지한다.

mysqld정지
c:¥mysql¥bin>mysqladmin -uroot shutdown

또, SCM을 사용해서 서비스를 등록했을 경우는 다음과 같이 정지한다.

SCM을 사용한 경우의 정지
c:¥mysql¥bin>NET STOP MySQL