2009년 7월 28일 화요일

mysqlmanager 4

mysqlmanager기동

shell$ ./bin/mysql -umycom -p -S /tmp/mysqlmanager.sock
또는
shell$ ./bin/mysql -umycom -p --port=2273
...
mysql>SHOW INSTANCES;
+---------------+----------+-
|instance_name | status |
+---------------+----------+-
|mysqld | online |
+---------------+----------+-

mysqlmanager에 대해서는 mysql명령어로 액세스한다. 그때 /etc/mysqlmanager.passwd에 정의되어있는 사용자명과 패스워드가 필요하다.

따라서 mysql명령어의 인수에는 -u하고 -p옵션이 필수이다.

또 mysqlmanager는 로컬머신에서는 /tmp/mysqlmanager.sock 소켓 파일을, TCP/IP에서는 2273번 포트를 표준으로 사용한다. 따라서 소켓파일명이나 TCP/IP 포트번호를 지정하지않으면 안된다.

종래의 MySQL에서는 mysqld_safe에서나 mysql.server스크립트에서도 로컬머신에서 명령어를 실행하는 방법만 있었지만 mysqlmanager에서는 TCP/IP를 이용해서 리모트 머신에서 mysqld의 기동이나 정지가 된다는 것은 평가해줄 만 하다. 대기업 상용 RDBMS와 같이 조작이 가능하게 되었다는 점이다.

그러나 사용하는 경우는 시큐리티에 신경을 잘 써야한다.

SHOW INSTANCES
여기에서 말하는 "인스턴스"라는 것은 mysqld 데몬(프로세스)를 말한다.
SHOW INSTANCES는 정의되어있는 mysqld와 그 상태를 나타낸다. online은 기동중, offline은 정지중이다.
여러개의 mysqld를 my.cnf내에 정의한 경우에는 다음과 같다.

mysql>SHOW INSTANCES;
+---------------+----------+-
|instance_name | status |
+---------------+----------+-
|mysqld | online |
|mysqld1 | online |
|mysqld2 | offline |
+---------------+----------+-

예에서는 [mysqld]와 [mysqld1]은 기동중, [mysqld2]는 정지중이다.

STOP INSTANCE 이름
해당 mysqld 데몬을 정지시킨다.

START INSTANCE 이름
해당 mysqld 데몬을 기동시킨다.

SHOW INSTANCE STATUS 이름
해당 mysqld 버전을 보여준다.

SHOW 이름 LOG FILES
로그 파일 위치와 사이즈를 보여준다.

mysqld 로그 파일 사이즈보기
mysql> SHOW mysqld LOG FILES;
+---------------+----------+----------+-
|Logfile | Path |File size |
+---------------+----------+----------+-
|GENERAL LOG| ... | ... |
+---------------+----------+----------+-
|SLOW LOG| ... | ... |
+---------------+----------+----------+-

SET 이름.변수명=값
지정된 mysqld 변수(옵션) 값을 설정한다.
mysql> SET mysql1.port=6612;
이 예에서는 mysqld1 포트 번호를 6612로 변경한다.

UNSET 이름.변수명
SET의 반대동작이다.
mysql> SET mysql1.port;
이 예에서는 mysqld1 포트 번호를 표준값으로 되돌린다.

FLASH 이름
SET로 변경된 값을 원래의 상태로 되돌리는 명령어이다.

간단하게 명령어를 설명했으나 앞으로 명령어가 확장될 가능성은 상존한다.